Setup

Load packages

library(here) # file organisation & folder location
library(tidyverse) # data wrangling & plotting
library(naniar) # dealing with missing values
library(PupillometryR) # raincloud plots
library(plotrix) # for calculating standard error
library(scales) # scales on plots
library(psych) # for factor analysis

R / package versions used

R.Version() 
## $platform
## [1] "x86_64-w64-mingw32"
## 
## $arch
## [1] "x86_64"
## 
## $os
## [1] "mingw32"
## 
## $system
## [1] "x86_64, mingw32"
## 
## $status
## [1] ""
## 
## $major
## [1] "4"
## 
## $minor
## [1] "0.5"
## 
## $year
## [1] "2021"
## 
## $month
## [1] "03"
## 
## $day
## [1] "31"
## 
## $`svn rev`
## [1] "80133"
## 
## $language
## [1] "R"
## 
## $version.string
## [1] "R version 4.0.5 (2021-03-31)"
## 
## $nickname
## [1] "Shake and Throw"
packageVersion('here')
## [1] '1.0.1'
packageVersion('tidyverse')
## [1] '1.3.1'
packageVersion('psych')
## [1] '2.1.6'

Read in data

here::here()
## [1] "C:/Users/Freya Watkins/OneDrive - University of Birmingham/Desktop/R/sli_aptitude"
apt <- read_csv(here("data", "2021-09-30_SLI_aptitude_data.csv"))
## 
## -- Column specification --------------------------------------------------------
## cols(
##   .default = col_double(),
##   group = col_character(),
##   ppt = col_character(),
##   bis_tot = col_character(),
##   bis_att = col_character(),
##   bis_mot = col_character(),
##   bis_nplan = col_character(),
##   summ = col_character(),
##   copy_sign = col_character(),
##   bsl_srt = col_character(),
##   town_map = col_character(),
##   comments = col_character()
## )
## i Use `spec()` for the full column specifications.
apt <- as_tibble(apt)

Look at data

head(apt)
## # A tibble: 6 x 36
##   session group ppt   nback_lett nback_spat nback_comb corsi_bspan corsi_score
##     <dbl> <chr> <chr>      <dbl>      <dbl>      <dbl>       <dbl>       <dbl>
## 1       1 pilot HW001       0.68       0.76       0.72           5          35
## 2       1 pilot HW005       0.75       0.73       0.74           8          88
## 3       1 pilot HW006       0.67       0.75       0.71           6          54
## 4       1 pilot HW007       0.73       0.71       0.72           6          60
## 5       1 pilot HW008       0.75       0.73       0.74           8          80
## 6       1 pilot HW013       0.68       0.71       0.7            6          60
## # ... with 28 more variables: corsi_corr <dbl>, corsi_mspan <dbl>,
## #   kirk_ceil <dbl>, kirk_raw <dbl>, kirk_acc <dbl>, kbit_ceil <dbl>,
## #   kbit_raw <dbl>, kbit_acc <dbl>, dspan_mem <dbl>, dspan_corr <dbl>,
## #   dspan_time <dbl>, mr2d_acc <dbl>, mr2d_rt <dbl>, mr3d_acc <dbl>,
## #   mr3d_rt <dbl>, bis_tot <chr>, bis_att <chr>, bis_mot <chr>,
## #   bis_nplan <chr>, mlat_raw <dbl>, mlat_acc <dbl>, summ <chr>,
## #   copy_sign <chr>, bsl_srt <chr>, town_map <chr>, grade_bsl <dbl>,
## #   grade_terp <dbl>, comments <chr>
tail(apt)
## # A tibble: 6 x 36
##   session group ppt    nback_lett nback_spat nback_comb corsi_bspan corsi_score
##     <dbl> <chr> <chr>       <dbl>      <dbl>      <dbl>       <dbl>       <dbl>
## 1       3 grant WV2051      NA         NA         NA             NA          NA
## 2       3 grant WV2061       0.78       0.76       0.77           6          48
## 3       3 grant WV2071      NA         NA         NA             NA          NA
## 4       3 grant WV2081      NA         NA         NA             NA          NA
## 5       3 grant WV2091      NA         NA         NA             NA          NA
## 6       3 grant WV2111      NA         NA         NA             NA          NA
## # ... with 28 more variables: corsi_corr <dbl>, corsi_mspan <dbl>,
## #   kirk_ceil <dbl>, kirk_raw <dbl>, kirk_acc <dbl>, kbit_ceil <dbl>,
## #   kbit_raw <dbl>, kbit_acc <dbl>, dspan_mem <dbl>, dspan_corr <dbl>,
## #   dspan_time <dbl>, mr2d_acc <dbl>, mr2d_rt <dbl>, mr3d_acc <dbl>,
## #   mr3d_rt <dbl>, bis_tot <chr>, bis_att <chr>, bis_mot <chr>,
## #   bis_nplan <chr>, mlat_raw <dbl>, mlat_acc <dbl>, summ <chr>,
## #   copy_sign <chr>, bsl_srt <chr>, town_map <chr>, grade_bsl <dbl>,
## #   grade_terp <dbl>, comments <chr>
names(apt)
##  [1] "session"     "group"       "ppt"         "nback_lett"  "nback_spat" 
##  [6] "nback_comb"  "corsi_bspan" "corsi_score" "corsi_corr"  "corsi_mspan"
## [11] "kirk_ceil"   "kirk_raw"    "kirk_acc"    "kbit_ceil"   "kbit_raw"   
## [16] "kbit_acc"    "dspan_mem"   "dspan_corr"  "dspan_time"  "mr2d_acc"   
## [21] "mr2d_rt"     "mr3d_acc"    "mr3d_rt"     "bis_tot"     "bis_att"    
## [26] "bis_mot"     "bis_nplan"   "mlat_raw"    "mlat_acc"    "summ"       
## [31] "copy_sign"   "bsl_srt"     "town_map"    "grade_bsl"   "grade_terp" 
## [36] "comments"
summary(apt)
##     session     group               ppt              nback_lett   
##  Min.   :1   Length:99          Length:99          Min.   :0.590  
##  1st Qu.:1   Class :character   Class :character   1st Qu.:0.680  
##  Median :2   Mode  :character   Mode  :character   Median :0.730  
##  Mean   :2                                         Mean   :0.717  
##  3rd Qu.:3                                         3rd Qu.:0.750  
##  Max.   :3                                         Max.   :0.790  
##                                                    NA's   :43     
##    nback_spat       nback_comb      corsi_bspan     corsi_score    
##  Min.   :0.5200   Min.   :0.5700   Min.   :5.000   Min.   : 30.00  
##  1st Qu.:0.7075   1st Qu.:0.7100   1st Qu.:6.000   1st Qu.: 48.00  
##  Median :0.7300   Median :0.7200   Median :6.000   Median : 54.00  
##  Mean   :0.7250   Mean   :0.7207   Mean   :6.228   Mean   : 57.58  
##  3rd Qu.:0.7600   3rd Qu.:0.7500   3rd Qu.:6.000   3rd Qu.: 60.00  
##  Max.   :0.7900   Max.   :0.7800   Max.   :9.000   Max.   :126.00  
##  NA's   :43       NA's   :43       NA's   :42      NA's   :42      
##    corsi_corr      corsi_mspan      kirk_ceil        kirk_raw    
##  Min.   : 6.000   Min.   :4.000   Min.   :23.00   Min.   :14.00  
##  1st Qu.: 8.000   1st Qu.:5.000   1st Qu.:37.00   1st Qu.:29.75  
##  Median : 9.000   Median :5.500   Median :40.50   Median :31.00  
##  Mean   : 9.053   Mean   :5.526   Mean   :38.75   Mean   :31.11  
##  3rd Qu.:10.000   3rd Qu.:6.000   3rd Qu.:42.00   3rd Qu.:34.00  
##  Max.   :14.000   Max.   :8.000   Max.   :42.00   Max.   :39.00  
##  NA's   :42       NA's   :42      NA's   :43      NA's   :43     
##     kirk_acc        kbit_ceil        kbit_raw        kbit_acc     
##  Min.   :0.4800   Min.   :20.00   Min.   :16.00   Min.   :0.6900  
##  1st Qu.:0.7400   1st Qu.:41.00   1st Qu.:37.00   1st Qu.:0.8600  
##  Median :0.8150   Median :43.00   Median :39.50   Median :0.9250  
##  Mean   :0.8039   Mean   :42.25   Mean   :38.84   Mean   :0.9055  
##  3rd Qu.:0.8625   3rd Qu.:45.25   3rd Qu.:41.00   3rd Qu.:0.9600  
##  Max.   :0.9700   Max.   :46.00   Max.   :46.00   Max.   :1.0000  
##  NA's   :43       NA's   :43      NA's   :43      NA's   :43      
##    dspan_mem        dspan_corr       dspan_time       mr2d_acc     
##  Min.   : 5.000   Min.   :0.5000   Min.   :2.200   Min.   :0.5400  
##  1st Qu.: 6.000   1st Qu.:0.6750   1st Qu.:3.735   1st Qu.:0.8600  
##  Median : 7.500   Median :0.7100   Median :4.540   Median :0.9100  
##  Mean   : 7.367   Mean   :0.7287   Mean   :4.523   Mean   :0.8806  
##  3rd Qu.: 8.000   3rd Qu.:0.7975   3rd Qu.:5.095   3rd Qu.:0.9400  
##  Max.   :10.000   Max.   :0.8800   Max.   :6.790   Max.   :0.9800  
##  NA's   :69       NA's   :69       NA's   :69      NA's   :66      
##     mr2d_rt        mr3d_acc         mr3d_rt       bis_tot         
##  Min.   :1086   Min.   :0.1500   Min.   :1379   Length:99         
##  1st Qu.:2004   1st Qu.:0.5500   1st Qu.:2398   Class :character  
##  Median :2430   Median :0.7400   Median :3013   Mode  :character  
##  Mean   :2761   Mean   :0.6916   Mean   :2908                     
##  3rd Qu.:3057   3rd Qu.:0.8400   3rd Qu.:3279                     
##  Max.   :8256   Max.   :0.9600   Max.   :4285                     
##  NA's   :66     NA's   :62       NA's   :62                       
##    bis_att            bis_mot           bis_nplan            mlat_raw    
##  Length:99          Length:99          Length:99          Min.   :13.00  
##  Class :character   Class :character   Class :character   1st Qu.:31.75  
##  Mode  :character   Mode  :character   Mode  :character   Median :38.50  
##                                                           Mean   :35.45  
##                                                           3rd Qu.:42.50  
##                                                           Max.   :45.00  
##                                                           NA's   :77     
##     mlat_acc          summ            copy_sign           bsl_srt         
##  Min.   :0.2900   Length:99          Length:99          Length:99         
##  1st Qu.:0.7075   Class :character   Class :character   Class :character  
##  Median :0.8550   Mode  :character   Mode  :character   Mode  :character  
##  Mean   :0.7891                                                           
##  3rd Qu.:0.9475                                                           
##  Max.   :1.0000                                                           
##  NA's   :77                                                               
##    town_map           grade_bsl       grade_terp      comments        
##  Length:99          Min.   :34.00   Min.   :44.00   Length:99         
##  Class :character   1st Qu.:57.25   1st Qu.:51.00   Class :character  
##  Mode  :character   Median :62.50   Median :59.50   Mode  :character  
##                     Mean   :62.83   Mean   :60.32                     
##                     3rd Qu.:70.00   3rd Qu.:67.75                     
##                     Max.   :85.00   Max.   :84.00                     
##                     NA's   :41      NA's   :65

Summarise missingness

apt %>% select(-session:-ppt, -comments) %>% 
  naniar::miss_var_summary() # data is in long format though
## # A tibble: 32 x 3
##    variable  n_miss pct_miss
##    <chr>      <int>    <dbl>
##  1 bis_tot       83     83.8
##  2 bis_att       83     83.8
##  3 bis_mot       83     83.8
##  4 bis_nplan     83     83.8
##  5 town_map      82     82.8
##  6 bsl_srt       81     81.8
##  7 mlat_raw      77     77.8
##  8 mlat_acc      77     77.8
##  9 summ          76     76.8
## 10 dspan_mem     69     69.7
## # ... with 22 more rows
apt_wide <- apt %>% 
  tidyr::pivot_wider(names_from = session, 
                     values_from = c(nback_lett:comments))

naniar::miss_var_summary(apt_wide)
## # A tibble: 101 x 3
##    variable     n_miss pct_miss
##    <chr>         <int>    <dbl>
##  1 dspan_mem_2      33      100
##  2 dspan_corr_2     33      100
##  3 dspan_time_2     33      100
##  4 bis_tot_1        33      100
##  5 bis_att_1        33      100
##  6 bis_mot_1        33      100
##  7 bis_nplan_1      33      100
##  8 mlat_raw_2       33      100
##  9 mlat_raw_3       33      100
## 10 mlat_acc_2       33      100
## # ... with 91 more rows
vis_miss(apt) # visualise missingness

vis_miss(apt_wide) # visualise missingness

vis_miss(apt, cluster = TRUE) # arrange rows according to missingness

# Show missingness on a row by row basis i.e. by participant & session
gg_miss_case(apt)

Not all of the missingness is a problem, for some variables we did not plan to test on all participants

Test imputation

# simple imputation of replacing all NAs with the mean of that column
imp_mean <- apt_wide %>% 
  bind_shadow(only_miss = TRUE) %>% 
  add_label_shadow() %>% 
  impute_mean_all()
## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = TRUE): argument is not numeric or logical:
## returning NA
# this keeps the mean of each variable the same (good) but decreases the variance (bad), increasing bias. this method also doesn't take into account other factors that could better predict more plausible values than just using the mean

library(simputation) 
## 
## Attaching package: 'simputation'
## The following object is masked from 'package:naniar':
## 
##     impute_median
# imp_lm <- imp_mean %>% impute_lm(Y ~ X1 + X2)
# not sure how to use this yet

# or use {mice}
library(mice)
## 
## Attaching package: 'mice'
## The following object is masked from 'package:stats':
## 
##     filter
## The following objects are masked from 'package:base':
## 
##     cbind, rbind
md.pattern(apt_wide)

##   group ppt nback_lett_1 nback_spat_1 nback_comb_1 corsi_bspan_1 corsi_score_1
## 1     1   1            1            1            1             1             1
## 1     1   1            1            1            1             1             1
## 1     1   1            1            1            1             1             1
## 1     1   1            1            1            1             1             1
## 3     1   1            1            1            1             1             1
## 1     1   1            1            1            1             1             1
## 1     1   1            1            1            1             1             1
## 2     1   1            1            1            1             1             1
## 8     1   1            1            1            1             1             1
## 2     1   1            1            1            1             1             1
## 1     1   1            1            1            1             1             1
## 2     1   1            1            1            1             1             1
## 1     1   1            1            1            1             1             1
## 1     1   1            1            1            1             1             1
## 1     1   1            1            1            1             1             1
## 3     1   1            1            1            1             1             1
## 1     1   1            1            1            1             1             1
## 1     1   1            1            1            1             1             1
## 1     1   1            1            1            1             1             1
##       0   0            0            0            0             0             0
##   corsi_corr_1 corsi_mspan_1 kirk_ceil_1 kirk_raw_1 kirk_acc_1 kbit_ceil_1
## 1            1             1           1          1          1           1
## 1            1             1           1          1          1           1
## 1            1             1           1          1          1           1
## 1            1             1           1          1          1           1
## 3            1             1           1          1          1           1
## 1            1             1           1          1          1           1
## 1            1             1           1          1          1           1
## 2            1             1           1          1          1           1
## 8            1             1           1          1          1           1
## 2            1             1           1          1          1           1
## 1            1             1           1          1          1           1
## 2            1             1           1          1          1           1
## 1            1             1           1          1          1           1
## 1            1             1           1          1          1           1
## 1            1             1           1          1          1           1
## 3            1             1           1          1          1           1
## 1            1             1           1          1          1           1
## 1            1             1           1          1          1           1
## 1            1             1           1          1          1           1
##              0             0           0          0          0           0
##   kbit_raw_1 kbit_acc_1 grade_bsl_2 copy_sign_1 grade_bsl_3 grade_terp_3
## 1          1          1           1           1           1            1
## 1          1          1           1           1           1            1
## 1          1          1           1           1           1            1
## 1          1          1           1           1           1            1
## 3          1          1           1           1           1            1
## 1          1          1           1           1           1            1
## 1          1          1           1           1           1            1
## 2          1          1           1           1           1            1
## 8          1          1           1           1           1            1
## 2          1          1           1           1           1            1
## 1          1          1           1           1           1            0
## 2          1          1           1           1           0            0
## 1          1          1           1           1           0            0
## 1          1          1           1           1           0            0
## 1          1          1           1           0           1            1
## 3          1          1           1           0           1            1
## 1          1          1           1           0           1            1
## 1          1          1           0           1           0            0
## 1          1          1           0           0           0            0
##            0          0           2           6           6            7
##   mr3d_acc_1 mr3d_rt_1 mlat_raw_1 mlat_acc_1 comments_2 comments_3 summ_1
## 1          1         1          1          1          1          1      1
## 1          1         1          1          1          1          1      1
## 1          1         1          1          1          1          1      1
## 1          1         1          1          1          1          1      1
## 3          1         1          1          1          1          1      1
## 1          1         1          1          1          1          0      1
## 1          1         1          1          1          1          0      1
## 2          1         1          1          1          1          0      1
## 8          0         0          0          0          0          1      0
## 2          0         0          0          0          0          0      0
## 1          1         1          1          1          1          1      1
## 2          1         1          1          1          1          1      1
## 1          1         1          1          1          1          0      1
## 1          0         0          0          0          0          1      0
## 1          1         1          1          1          1          1      1
## 3          1         1          1          1          1          0      1
## 1          1         1          1          1          1          0      0
## 1          1         1          1          1          1          1      1
## 1          1         1          1          1          1          1      1
##           11        11         11         11         11         11     12
##   dspan_mem_1 dspan_corr_1 dspan_time_1 bsl_srt_3 town_map_3 corsi_bspan_2
## 1           1            1            1         1          1             0
## 1           1            1            1         1          1             0
## 1           1            1            1         0          0             0
## 1           1            1            1         0          0             0
## 3           1            1            1         0          0             0
## 1           1            1            1         1          1             1
## 1           1            1            1         1          1             0
## 2           1            1            1         1          1             0
## 8           0            0            0         0          0             1
## 2           0            0            0         1          1             1
## 1           1            1            1         0          0             0
## 2           1            1            1         1          1             0
## 1           1            1            1         1          1             0
## 1           0            0            0         0          0             1
## 1           1            1            1         0          0             0
## 3           0            0            0         1          1             0
## 1           1            1            1         1          1             1
## 1           1            1            1         0          0             0
## 1           1            1            1         0          0             0
##            14           14           14        18         18            20
##   corsi_score_2 corsi_corr_2 corsi_mspan_2 mr3d_acc_3 mr3d_rt_3 bis_tot_3
## 1             0            0             0          1         1         1
## 1             0            0             0          1         1         1
## 1             0            0             0          0         0         0
## 1             0            0             0          0         0         0
## 3             0            0             0          0         0         0
## 1             1            1             1          1         1         1
## 1             0            0             0          1         1         1
## 2             0            0             0          1         1         1
## 8             1            1             1          0         0         0
## 2             1            1             1          1         1         1
## 1             0            0             0          0         0         0
## 2             0            0             0          0         0         0
## 1             0            0             0          1         1         1
## 1             1            1             1          0         0         0
## 1             0            0             0          0         0         0
## 3             0            0             0          1         1         1
## 1             1            1             1          1         1         1
## 1             0            0             0          0         0         0
## 1             0            0             0          0         0         0
##              20           20            20         20        20        20
##   bis_att_3 bis_mot_3 bis_nplan_3 nback_lett_2 nback_spat_2 nback_comb_2
## 1         1         1           1            0            0            0
## 1         1         1           1            0            0            0
## 1         0         0           0            0            0            0
## 1         0         0           0            0            0            0
## 3         0         0           0            0            0            0
## 1         1         1           1            1            1            1
## 1         1         1           1            0            0            0
## 2         1         1           1            0            0            0
## 8         0         0           0            1            1            1
## 2         1         1           1            1            1            1
## 1         0         0           0            0            0            0
## 2         0         0           0            0            0            0
## 1         1         1           1            0            0            0
## 1         0         0           0            1            1            1
## 1         0         0           0            0            0            0
## 3         1         1           1            0            0            0
## 1         1         1           1            0            0            0
## 1         0         0           0            0            0            0
## 1         0         0           0            0            0            0
##          20        20          20           21           21           21
##   kirk_ceil_3 kirk_raw_3 kirk_acc_3 kbit_ceil_3 kbit_raw_3 kbit_acc_3
## 1           1          1          1           1          1          1
## 1           0          0          0           0          0          0
## 1           0          0          0           0          0          0
## 1           0          0          0           0          0          0
## 3           0          0          0           0          0          0
## 1           1          1          1           1          1          1
## 1           1          1          1           1          1          1
## 2           1          1          1           1          1          1
## 8           0          0          0           0          0          0
## 2           1          1          1           1          1          1
## 1           0          0          0           0          0          0
## 2           0          0          0           0          0          0
## 1           1          1          1           1          1          1
## 1           0          0          0           0          0          0
## 1           0          0          0           0          0          0
## 3           1          1          1           1          1          1
## 1           1          1          1           1          1          1
## 1           0          0          0           0          0          0
## 1           0          0          0           0          0          0
##            21         21         21          21         21         21
##   nback_lett_3 nback_spat_3 nback_comb_3 corsi_bspan_3 corsi_score_3
## 1            0            0            0             0             0
## 1            0            0            0             0             0
## 1            0            0            0             0             0
## 1            0            0            0             0             0
## 3            0            0            0             0             0
## 1            1            1            1             1             1
## 1            1            1            1             1             1
## 2            1            1            1             1             1
## 8            0            0            0             0             0
## 2            1            1            1             1             1
## 1            0            0            0             0             0
## 2            0            0            0             0             0
## 1            1            1            1             1             1
## 1            0            0            0             0             0
## 1            0            0            0             0             0
## 3            1            1            1             1             1
## 1            1            1            1             1             1
## 1            0            0            0             0             0
## 1            0            0            0             0             0
##             22           22           22            22            22
##   corsi_corr_3 corsi_mspan_3 kirk_ceil_2 kirk_raw_2 kirk_acc_2 kbit_ceil_2
## 1            0             0           0          0          0           0
## 1            0             0           0          0          0           0
## 1            0             0           0          0          0           0
## 1            0             0           0          0          0           0
## 3            0             0           0          0          0           0
## 1            1             1           0          0          0           0
## 1            1             1           0          0          0           0
## 2            1             1           0          0          0           0
## 8            0             0           1          1          1           1
## 2            1             1           1          1          1           1
## 1            0             0           0          0          0           0
## 2            0             0           0          0          0           0
## 1            1             1           0          0          0           0
## 1            0             0           1          1          1           1
## 1            0             0           0          0          0           0
## 3            1             1           0          0          0           0
## 1            1             1           0          0          0           0
## 1            0             0           0          0          0           0
## 1            0             0           0          0          0           0
##             22            22          22         22         22          22
##   kbit_raw_2 kbit_acc_2 dspan_mem_3 dspan_corr_3 dspan_time_3 mr2d_acc_1
## 1          0          0           0            0            0          0
## 1          0          0           0            0            0          0
## 1          0          0           0            0            0          0
## 1          0          0           0            0            0          0
## 3          0          0           0            0            0          0
## 1          0          0           1            1            1          0
## 1          0          0           1            1            1          0
## 2          0          0           1            1            1          0
## 8          1          1           0            0            0          1
## 2          1          1           1            1            1          1
## 1          0          0           0            0            0          0
## 2          0          0           0            0            0          0
## 1          0          0           1            1            1          0
## 1          1          1           0            0            0          1
## 1          0          0           0            0            0          0
## 3          0          0           1            1            1          0
## 1          0          0           1            1            1          0
## 1          0          0           0            0            0          0
## 1          0          0           0            0            0          0
##           22         22          22           22           22         22
##   mr2d_acc_2 mr2d_acc_3 mr2d_rt_1 mr2d_rt_2 mr2d_rt_3 copy_sign_2 grade_terp_2
## 1          0          0         0         0         0           0            1
## 1          0          0         0         0         0           0            0
## 1          0          0         0         0         0           0            1
## 1          0          0         0         0         0           0            0
## 3          0          0         0         0         0           0            0
## 1          0          1         0         0         1           0            0
## 1          0          1         0         0         1           0            1
## 2          0          1         0         0         1           0            0
## 8          1          0         1         1         0           1            0
## 2          1          1         1         1         1           1            0
## 1          0          0         0         0         0           0            1
## 2          0          0         0         0         0           0            1
## 1          0          1         0         0         1           0            1
## 1          1          0         1         1         0           1            0
## 1          0          0         0         0         0           0            1
## 3          0          1         0         0         1           0            0
## 1          0          1         0         0         1           0            0
## 1          0          0         0         0         0           0            0
## 1          0          0         0         0         0           0            0
##           22         22        22        22        22          22           25
##   comments_1 bis_tot_2 bis_att_2 bis_mot_2 bis_nplan_2 bsl_srt_2 mr3d_acc_2
## 1          0         0         0         0           0         0          0
## 1          0         0         0         0           0         0          0
## 1          0         0         0         0           0         0          0
## 1          0         1         1         1           1         1          0
## 3          0         0         0         0           0         0          0
## 1          0         1         1         1           1         1          1
## 1          0         0         0         0           0         0          0
## 2          0         0         0         0           0         0          0
## 8          0         0         0         0           0         0          0
## 2          0         0         0         0           0         0          0
## 1          0         0         0         0           0         0          0
## 2          0         0         0         0           0         0          0
## 1          0         0         0         0           0         0          0
## 1          0         0         0         0           0         0          0
## 1          0         0         0         0           0         0          0
## 3          1         0         0         0           0         0          0
## 1          1         1         1         1           1         1          1
## 1          0         0         0         0           0         0          0
## 1          0         0         0         0           0         0          0
##           29        30        30        30          30        30         31
##   mr3d_rt_2 summ_2 town_map_2 dspan_mem_2 dspan_corr_2 dspan_time_2 bis_tot_1
## 1         0      0          0           0            0            0         0
## 1         0      0          0           0            0            0         0
## 1         0      0          0           0            0            0         0
## 1         0      0          0           0            0            0         0
## 3         0      0          0           0            0            0         0
## 1         1      1          1           0            0            0         0
## 1         0      0          0           0            0            0         0
## 2         0      0          0           0            0            0         0
## 8         0      0          0           0            0            0         0
## 2         0      0          0           0            0            0         0
## 1         0      0          0           0            0            0         0
## 2         0      0          0           0            0            0         0
## 1         0      0          0           0            0            0         0
## 1         0      0          0           0            0            0         0
## 1         0      0          0           0            0            0         0
## 3         0      0          0           0            0            0         0
## 1         1      1          1           0            0            0         0
## 1         0      0          0           0            0            0         0
## 1         0      0          0           0            0            0         0
##          31     31         31          33           33           33        33
##   bis_att_1 bis_mot_1 bis_nplan_1 mlat_raw_2 mlat_raw_3 mlat_acc_2 mlat_acc_3
## 1         0         0           0          0          0          0          0
## 1         0         0           0          0          0          0          0
## 1         0         0           0          0          0          0          0
## 1         0         0           0          0          0          0          0
## 3         0         0           0          0          0          0          0
## 1         0         0           0          0          0          0          0
## 1         0         0           0          0          0          0          0
## 2         0         0           0          0          0          0          0
## 8         0         0           0          0          0          0          0
## 2         0         0           0          0          0          0          0
## 1         0         0           0          0          0          0          0
## 2         0         0           0          0          0          0          0
## 1         0         0           0          0          0          0          0
## 1         0         0           0          0          0          0          0
## 1         0         0           0          0          0          0          0
## 3         0         0           0          0          0          0          0
## 1         0         0           0          0          0          0          0
## 1         0         0           0          0          0          0          0
## 1         0         0           0          0          0          0          0
##          33        33          33         33         33         33         33
##   summ_3 copy_sign_3 bsl_srt_1 town_map_1 grade_bsl_1 grade_terp_1     
## 1      0           0         0          0           0            0   57
## 1      0           0         0          0           0            0   64
## 1      0           0         0          0           0            0   71
## 1      0           0         0          0           0            0   67
## 3      0           0         0          0           0            0   72
## 1      0           0         0          0           0            0   31
## 1      0           0         0          0           0            0   46
## 2      0           0         0          0           0            0   47
## 8      0           0         0          0           0            0   63
## 2      0           0         0          0           0            0   38
## 1      0           0         0          0           0            0   72
## 2      0           0         0          0           0            0   71
## 1      0           0         0          0           0            0   48
## 1      0           0         0          0           0            0   65
## 1      0           0         0          0           0            0   72
## 3      0           0         0          0           0            0   50
## 1      0           0         0          0           0            0   35
## 1      0           0         0          0           0            0   75
## 1      0           0         0          0           0            0   76
##       33          33        33         33          33           33 1961
# impute variables using predictive mean matching (PMM)
#test_mice <- mice(apt_wide, m=5, maxit=50, meth='pmm', seed=500)
#imputed_mice <- mice(apt_wide, m=5, method = "pmm") 

# summary(imputed_mice) # check summary
#imputed_mice$imp  # check imputed values

# get back to completed data set
#completed_apt <- complete(imputed_mice)
#head(completed_apt)
# certain columns are not fully imputed because they are perfectly collinear with other columns. we can see which columms are collinear:
apt_wide_m <- select(apt_wide, nback_lett_1:mr3d_rt_3, 
                               mlat_raw_1:mlat_acc_3, 
                               grade_bsl_1:grade_terp_3)
apt_wide_m <- as.matrix(apt_wide_m)
#cor(apt_wide_m, use = "pairwise.complete.obs")
#mice:::find.collinear(completed_apt)
#mice(pred = diag(ncol()))

#init = mice(apt_wide, maxit=0) 
#meth = init$method
#predM = init$predictorMatrix

# remove specific variable as a predictor for imputation
#predM[c("group")]=0

# or use k-nearest neighbor  imputation in {bnstruct}

Convert variables

Session and Group should be factors:

apt$session <- as.factor(apt$session)
apt$group <- as.factor(apt$group)
apt$ppt <- as.factor(apt$ppt)

apt$bis_tot <- as.numeric(apt$bis_tot)
## Warning: NAs introduced by coercion
apt$bis_att <- as.numeric(apt$bis_att)
## Warning: NAs introduced by coercion
apt$bis_mot <- as.numeric(apt$bis_mot)
## Warning: NAs introduced by coercion
apt$bis_nplan <- as.numeric(apt$bis_nplan)
## Warning: NAs introduced by coercion

Rename levels of Session:

apt$session <- plyr::revalue(apt$session, c("1" = "pre-degree", 
                                            "2" = "1 year degree", 
                                            "3" = "2 years degree"))

Summary tables

Cognitive & Linguistic predictors

Dual N-Back

apt %>% 
  filter(!is.na(nback_lett)) %>% 
  group_by(session) %>% 
  summarise(nbac_lett_mean = mean(nback_lett), 
            sd = sd(nback_lett),
            se = std.error(nback_lett))
## # A tibble: 3 x 4
##   session        nbac_lett_mean     sd      se
##   <fct>                   <dbl>  <dbl>   <dbl>
## 1 pre-degree              0.712 0.0420 0.00732
## 2 1 year degree           0.704 0.0553 0.0160 
## 3 2 years degree          0.745 0.0294 0.00888
apt %>% 
  filter(!is.na(nback_spat)) %>% 
  group_by(session) %>% 
  summarise(nbac_spat_mean = mean(nback_spat), 
            sd = sd(nback_spat),
            se = std.error(nback_spat))
## # A tibble: 3 x 4
##   session        nbac_spat_mean     sd      se
##   <fct>                   <dbl>  <dbl>   <dbl>
## 1 pre-degree              0.717 0.0522 0.00909
## 2 1 year degree           0.73  0.0305 0.00879
## 3 2 years degree          0.744 0.0341 0.0103
apt %>% 
  filter(!is.na(nback_comb)) %>% 
  group_by(session) %>% 
  summarise(nbac_comb_mean = mean(nback_comb), 
            sd = sd(nback_comb),
            se = std.error(nback_comb))
## # A tibble: 3 x 4
##   session        nbac_comb_mean     sd      se
##   <fct>                   <dbl>  <dbl>   <dbl>
## 1 pre-degree              0.714 0.0398 0.00692
## 2 1 year degree           0.717 0.0368 0.0106 
## 3 2 years degree          0.745 0.0250 0.00755

Corsi Blocks

apt %>% 
  filter(!is.na(corsi_bspan)) %>% 
  group_by(session) %>% 
  summarise(corsi_bspan_mean = mean(corsi_bspan), 
            sd = sd(corsi_bspan),
            se = std.error(corsi_bspan))
## # A tibble: 3 x 4
##   session        corsi_bspan_mean    sd    se
##   <fct>                     <dbl> <dbl> <dbl>
## 1 pre-degree                 6.06  1.12 0.194
## 2 1 year degree              6.46  1.13 0.312
## 3 2 years degree             6.45  1.04 0.312
apt %>% 
  filter(!is.na(corsi_score)) %>% 
  group_by(session) %>% 
  summarise(corsi_score_mean = mean(corsi_score), 
            sd = sd(corsi_score),
            se = std.error(corsi_score))
## # A tibble: 3 x 4
##   session        corsi_score_mean    sd    se
##   <fct>                     <dbl> <dbl> <dbl>
## 1 pre-degree                 54.9  19.3  3.36
## 2 1 year degree              64.2  18.6  5.16
## 3 2 years degree             57.9  17.1  5.15
apt %>% 
  filter(!is.na(corsi_corr)) %>% 
  group_by(session) %>% 
  summarise(corsi_corr_mean = mean(corsi_corr), 
            sd = sd(corsi_corr),
            se = std.error(corsi_corr))
## # A tibble: 3 x 4
##   session        corsi_corr_mean    sd    se
##   <fct>                    <dbl> <dbl> <dbl>
## 1 pre-degree                8.85  1.44 0.250
## 2 1 year degree             9.77  1.30 0.361
## 3 2 years degree            8.82  1.25 0.377
apt %>% 
  filter(!is.na(corsi_mspan)) %>% 
  group_by(session) %>% 
  summarise(corsi_mspan_mean = mean(corsi_mspan), 
            sd = sd(corsi_mspan),
            se = std.error(corsi_mspan))
## # A tibble: 3 x 4
##   session        corsi_mspan_mean    sd    se
##   <fct>                     <dbl> <dbl> <dbl>
## 1 pre-degree                 5.42 0.719 0.125
## 2 1 year degree              5.88 0.650 0.180
## 3 2 years degree             5.41 0.625 0.189

Kirklees Sentence Reading

apt %>% 
  filter(!is.na(kirk_ceil)) %>% 
  group_by(session) %>% 
  summarise(kirk_ceil_mean = mean(kirk_ceil), 
            sd = sd(kirk_ceil),
            se = std.error(kirk_ceil))
## # A tibble: 3 x 4
##   session        kirk_ceil_mean    sd    se
##   <fct>                   <dbl> <dbl> <dbl>
## 1 pre-degree               38.2  3.97 0.691
## 2 1 year degree            40.1  3.18 0.958
## 3 2 years degree           39    5.66 1.63
apt %>% 
  filter(!is.na(kirk_raw)) %>% 
  group_by(session) %>% 
  summarise(kirk_raw_mean = mean(kirk_raw), 
            sd = sd(kirk_raw),
            se = std.error(kirk_raw))
## # A tibble: 3 x 4
##   session        kirk_raw_mean    sd    se
##   <fct>                  <dbl> <dbl> <dbl>
## 1 pre-degree              30.7  5.01 0.872
## 2 1 year degree           31    2.57 0.775
## 3 2 years degree          32.4  6.29 1.82
apt %>% 
  filter(!is.na(kirk_acc)) %>% 
  group_by(session) %>% 
  summarise(kirk_acc_mean = mean(kirk_acc), 
            sd = sd(kirk_acc),
            se = std.error(kirk_acc))
## # A tibble: 3 x 4
##   session        kirk_acc_mean     sd     se
##   <fct>                  <dbl>  <dbl>  <dbl>
## 1 pre-degree             0.804 0.110  0.0191
## 2 1 year degree          0.775 0.0566 0.0171
## 3 2 years degree         0.829 0.0945 0.0273

KBIT-2 Matrices

apt %>% 
  filter(!is.na(kbit_ceil)) %>% 
  group_by(session) %>% 
  summarise(kirk_ceil_mean = mean(kbit_ceil), 
            sd = sd(kbit_ceil),
            se = std.error(kbit_ceil))
## # A tibble: 3 x 4
##   session        kirk_ceil_mean    sd    se
##   <fct>                   <dbl> <dbl> <dbl>
## 1 pre-degree               41.3  5.13 0.894
## 2 1 year degree            44.1  2.43 0.732
## 3 2 years degree           43.1  3.12 0.900
apt %>% 
  filter(!is.na(kbit_raw)) %>% 
  group_by(session) %>% 
  summarise(kbit_raw_mean = mean(kbit_raw), 
            sd = sd(kbit_raw),
            se = std.error(kbit_raw))
## # A tibble: 3 x 4
##   session        kbit_raw_mean    sd    se
##   <fct>                  <dbl> <dbl> <dbl>
## 1 pre-degree              38.0  5.05 0.880
## 2 1 year degree           40.4  2.84 0.856
## 3 2 years degree          39.7  3.42 0.987
apt %>% 
  filter(!is.na(kbit_acc)) %>% 
  group_by(session) %>% 
  summarise(kbit_acc_mean = mean(kbit_acc), 
            sd = sd(kbit_acc),
            se = std.error(kbit_acc))
## # A tibble: 3 x 4
##   session        kbit_acc_mean     sd     se
##   <fct>                  <dbl>  <dbl>  <dbl>
## 1 pre-degree             0.908 0.0638 0.0111
## 2 1 year degree          0.88  0.0969 0.0292
## 3 2 years degree         0.922 0.0565 0.0163

Digit Span

apt %>% 
  filter(!is.na(dspan_mem)) %>% 
  group_by(session) %>% 
  summarise(dspan_mem_mean = mean(dspan_mem), 
            sd = sd(dspan_mem),
            se = std.error(dspan_mem))
## # A tibble: 2 x 4
##   session        dspan_mem_mean    sd    se
##   <fct>                   <dbl> <dbl> <dbl>
## 1 pre-degree               7.16  1.54 0.353
## 2 2 years degree           7.73  1.35 0.407
apt %>% 
  filter(!is.na(dspan_corr)) %>% 
  group_by(session) %>% 
  summarise(dspan_corr_mean = mean(dspan_corr), 
            sd = sd(dspan_corr),
            se = std.error(dspan_corr))
## # A tibble: 2 x 4
##   session        dspan_corr_mean     sd     se
##   <fct>                    <dbl>  <dbl>  <dbl>
## 1 pre-degree               0.723 0.0905 0.0208
## 2 2 years degree           0.739 0.0855 0.0258
apt %>% 
  filter(!is.na(dspan_time)) %>% 
  group_by(session) %>% 
  summarise(dspan_time_mean = mean(dspan_time), 
            sd = sd(dspan_time),
            se = std.error(dspan_time))
## # A tibble: 2 x 4
##   session        dspan_time_mean    sd    se
##   <fct>                    <dbl> <dbl> <dbl>
## 1 pre-degree                4.40  1.16 0.265
## 2 2 years degree            4.73  1.14 0.344

2D Mental Rotation

apt %>% 
  filter(!is.na(mr2d_acc)) %>% 
  group_by(session) %>% 
  summarise(mr2d_acc_mean = mean(mr2d_acc), 
            sd = sd(mr2d_acc),
            se = std.error(mr2d_acc))
## # A tibble: 3 x 4
##   session        mr2d_acc_mean     sd     se
##   <fct>                  <dbl>  <dbl>  <dbl>
## 1 pre-degree             0.911 0.0656 0.0198
## 2 1 year degree          0.909 0.0729 0.0220
## 3 2 years degree         0.822 0.118  0.0356
apt %>% 
  filter(!is.na(mr2d_rt)) %>% 
  group_by(session) %>% 
  summarise(mr2d_rt_mean = mean(mr2d_rt), 
            sd = sd(mr2d_rt),
            se = std.error(mr2d_rt))
## # A tibble: 3 x 4
##   session        mr2d_rt_mean    sd    se
##   <fct>                 <dbl> <dbl> <dbl>
## 1 pre-degree            3419. 1736.  523.
## 2 1 year degree         2493. 1048.  316.
## 3 2 years degree        2373.  906.  273.

3D Mental Rotation

apt %>% 
  filter(!is.na(mr3d_acc)) %>% 
  group_by(session) %>% 
  summarise(mr3d_acc_mean = mean(mr3d_acc), 
            sd = sd(mr3d_acc),
            se = std.error(mr3d_acc))
## # A tibble: 3 x 4
##   session        mr3d_acc_mean     sd     se
##   <fct>                  <dbl>  <dbl>  <dbl>
## 1 pre-degree             0.642 0.201  0.0429
## 2 1 year degree          0.795 0.0636 0.045 
## 3 2 years degree         0.76  0.148  0.0411
apt %>% 
  filter(!is.na(mr3d_rt)) %>% 
  group_by(session) %>% 
  summarise(mr3d_rt_mean = mean(mr3d_rt), 
            sd = sd(mr3d_rt),
            se = std.error(mr3d_rt))
## # A tibble: 3 x 4
##   session        mr3d_rt_mean    sd    se
##   <fct>                 <dbl> <dbl> <dbl>
## 1 pre-degree            3217.  594.  127.
## 2 1 year degree         2706.  435.  307.
## 3 2 years degree        2416.  490.  136.

Barratt Impulsivity Scale

apt %>% 
  filter(!is.na(bis_tot)) %>% 
  group_by(session) %>% 
  summarise(bis_tot_mean = mean(bis_tot), 
            sd = sd(bis_tot),
            se = std.error(bis_tot))
## Warning in mean.default(bis_tot): argument is not numeric or logical: returning
## NA

## Warning in mean.default(bis_tot): argument is not numeric or logical: returning
## NA
## Warning in var(if (is.vector(x) || is.factor(x)) x else as.double(x), na.rm =
## na.rm): NAs introduced by coercion

## Warning in var(if (is.vector(x) || is.factor(x)) x else as.double(x), na.rm =
## na.rm): NAs introduced by coercion
## # A tibble: 2 x 4
##   session        bis_tot_mean    sd    se
##   <fct>                 <dbl> <dbl> <dbl>
## 1 1 year degree            NA  NA    6.53
## 2 2 years degree           NA  11.8  3.26
apt %>% 
  filter(!is.na(bis_att)) %>% 
  group_by(session) %>% 
  summarise(bis_att_mean = mean(bis_att), 
            sd = sd(bis_att),
            se = std.error(bis_att))
## Warning in mean.default(bis_att): argument is not numeric or logical: returning
## NA
## Warning in mean.default(bis_att): argument is not numeric or logical: returning
## NA
## Warning in var(if (is.vector(x) || is.factor(x)) x else as.double(x), na.rm =
## na.rm): NAs introduced by coercion

## Warning in var(if (is.vector(x) || is.factor(x)) x else as.double(x), na.rm =
## na.rm): NAs introduced by coercion
## # A tibble: 2 x 4
##   session        bis_att_mean    sd    se
##   <fct>                 <dbl> <dbl> <dbl>
## 1 1 year degree            NA NA     2.04
## 2 2 years degree           NA  5.35  1.48
apt %>% 
  filter(!is.na(bis_mot)) %>% 
  group_by(session) %>% 
  summarise(bis_mot_mean = mean(bis_mot), 
            sd = sd(bis_mot),
            se = std.error(bis_mot))
## Warning in mean.default(bis_mot): argument is not numeric or logical: returning
## NA
## Warning in mean.default(bis_mot): argument is not numeric or logical: returning
## NA
## Warning in var(if (is.vector(x) || is.factor(x)) x else as.double(x), na.rm =
## na.rm): NAs introduced by coercion

## Warning in var(if (is.vector(x) || is.factor(x)) x else as.double(x), na.rm =
## na.rm): NAs introduced by coercion
## # A tibble: 2 x 4
##   session        bis_mot_mean    sd    se
##   <fct>                 <dbl> <dbl> <dbl>
## 1 1 year degree            NA NA    0.816
## 2 2 years degree           NA  5.15 1.43
apt %>% 
  filter(!is.na(bis_nplan)) %>% 
  group_by(session) %>% 
  summarise(bis_nplan_mean = mean(bis_nplan), 
            sd = sd(bis_nplan),
            se = std.error(bis_nplan))
## Warning in mean.default(bis_nplan): argument is not numeric or logical:
## returning NA
## Warning in mean.default(bis_nplan): argument is not numeric or logical:
## returning NA
## Warning in var(if (is.vector(x) || is.factor(x)) x else as.double(x), na.rm =
## na.rm): NAs introduced by coercion

## Warning in var(if (is.vector(x) || is.factor(x)) x else as.double(x), na.rm =
## na.rm): NAs introduced by coercion
## # A tibble: 2 x 4
##   session        bis_nplan_mean    sd    se
##   <fct>                   <dbl> <dbl> <dbl>
## 1 1 year degree              NA NA     3.67
## 2 2 years degree             NA  4.94  1.37

MLAT Number Learning

insufficient data? only collected at timepoint 1 for grant cohort

Summarising Task

insufficient data? only collected at timepoint 1 for grant cohort

BSL / Interpreting outcome variables

Copy Sign Task

# data to be coded

BSL Sentence Reproduction Task

# data to be coded

BSL Town Map

# data to be coded

BSL Grades

apt %>% 
  filter(!is.na(grade_bsl)) %>% 
  group_by(session) %>% 
  summarise(grade_bsl_mean = mean(grade_bsl), 
            sd = sd(grade_bsl),
            se = std.error(grade_bsl))
## # A tibble: 2 x 4
##   session        grade_bsl_mean    sd    se
##   <fct>                   <dbl> <dbl> <dbl>
## 1 1 year degree            63.7  8.37  1.50
## 2 2 years degree           61.8 10.0   1.92

Interpreting Grades

apt %>% 
  filter(!is.na(grade_terp)) %>% 
  group_by(session) %>% 
  summarise(grade_terp_mean = mean(grade_terp), 
            sd = sd(grade_terp),
            se = std.error(grade_terp))
## # A tibble: 2 x 4
##   session        grade_terp_mean    sd    se
##   <fct>                    <dbl> <dbl> <dbl>
## 1 1 year degree             64.4 15.6   5.51
## 2 2 years degree            59.1  8.87  1.74

Plots

Linguistic & cognitive predictors over time

Dual N-Back

Accuracy in letter matching

# Raincloud plot
( R1 <- apt %>% 
  filter(!is.na(nback_lett)) %>% 
  ggplot(aes(x = session, y = nback_lett, group = session)) +
  geom_flat_violin(position = position_nudge(x = .25, y = 0),
                   adjust = 2, trim = TRUE, alpha = 0.3) +
  geom_point(position = position_jitter(width = .15), 
                        size = 0.5) +
  scale_y_continuous(labels = percent_format(accuracy=1)) +
  labs(title = "Accuracy in letter matching during Dual N-Back Task by Session", 
       x = "Session", y = "Accuracy") )

# Jitter plot
J1 <- apt %>% 
  group_by(session) %>% 
  filter(!is.na(nback_lett)) %>% 
  summarize(mean=mean(nback_lett), sd = sd(nback_lett), se=std.error(nback_lett)) %>%
  ggplot(aes(x = session, y = mean, fill = session)) +
  geom_bar(stat = 'identity', position = position_dodge()) +
  coord_cartesian(ylim = c(0.5, 0.8)) +
  theme_minimal() +
  scale_y_continuous(labels = percent_format(accuracy=1)) +
  scale_fill_manual(values = c("#7bccc4", "#43a2ca", "#0868ac")) +
  labs(title = "Accuracy in letter matching during Dual N-Back Task by Session", 
       x = "Session", y = "Accuracy")

limits <- aes(ymax = mean + se, ymin = mean - se)
J2 <- J1 + geom_errorbar(position = position_dodge(), 
                          limits, size = 0.5, width = 0.5) +
  scale_y_continuous(labels = percent_format(accuracy=1)) 
## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.
indiv <- apt %>% 
  filter(!is.na(nback_lett)) %>% 
  group_by(session, ppt) %>% 
  summarise(mean = mean(nback_lett)) #, sd = sd(nback_lett)) # requires trial level data
## `summarise()` has grouped output by 'session'. You can override using the `.groups` argument.
pd <- position_dodge(0.5)
J3 <- J2 + geom_point(data=indiv, aes(group = ppt), size = 0.8, 
                       shape = 19, position = pd) +
    geom_line(data = indiv, aes(group = ppt),
                      size = 0.1, position = pd)

(J4 <- J3 + theme_bw() + 
    theme(panel.grid.major = element_blank(), 
          panel.grid.minor = element_blank(),
          panel.border = element_rect(colour = "black", size=0.5),
          axis.title.x = element_text(face = "bold"),
          legend.position = "none",
          axis.title.y = element_text(face = "bold"),
          axis.text.x=element_text(size=10, colour="black"),
          axis.text.y=element_text(colour="black")))  

Accuracy in spatial matching

# Raincloud plot
( R1 <- apt %>% 
  filter(!is.na(nback_spat)) %>% 
  ggplot(aes(x = session, y = nback_spat, group = session)) +
  geom_flat_violin(position = position_nudge(x = .25, y = 0),
                   adjust = 2, trim = TRUE, alpha = 0.3) +
  geom_point(position = position_jitter(width = .15), 
                        size = 0.5) +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1L)) +
  labs(title = "Accuracy in spatial matching during Dual N-Back Task by Session", 
       x = "Session", y = "Accuracy") )

# Jitter plot
J1 <- apt %>% 
  group_by(session) %>% 
  filter(!is.na(nback_spat)) %>% 
  summarize(mean=mean(nback_spat), sd = sd(nback_spat), se=std.error(nback_spat)) %>%
  ggplot(aes(x = session, y = mean, fill = session)) +
  geom_bar(stat = 'identity', position = position_dodge()) +
  coord_cartesian(ylim = c(0.5, 0.8)) +
  theme_minimal() +
  scale_y_continuous(labels = percent_format(accuracy=1)) +
  scale_fill_manual(values = c("#7bccc4", "#43a2ca", "#0868ac")) +
  labs(title = "Accuracy in spatial matching during Dual N-Back Task by Session", 
       x = "Session", y = "Accuracy")

limits <- aes(ymax = mean + se, ymin = mean - se)
J2 <- J1 + geom_errorbar(position = position_dodge(), 
                          limits, size = 0.5, width = 0.5) +
  scale_y_continuous(labels = percent_format(accuracy=1)) 
## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.
indiv <- apt %>% 
  filter(!is.na(nback_spat)) %>% 
  group_by(session, ppt) %>% 
  summarise(mean = mean(nback_spat)) #, sd = sd(nback_spat)) # requires trial-level data
## `summarise()` has grouped output by 'session'. You can override using the `.groups` argument.
pd <- position_dodge(0.5)
J3 <- J2 + geom_point(data=indiv, aes(group = ppt), size = 0.8, 
                       shape = 19, position = pd) +
    geom_line(data = indiv, aes(group = ppt),
                      size = 0.1, position = pd)

(J4 <- J3 + theme_bw() + 
    theme(panel.grid.major = element_blank(), 
          panel.grid.minor = element_blank(),
          panel.border = element_rect(colour = "black", size=0.5),
          axis.title.x = element_text(face = "bold"),
          legend.position = "none",
          axis.title.y = element_text(face = "bold"),
          axis.text.x=element_text(size=10, colour="black"),
          axis.text.y=element_text(colour="black")))  

Combined accuracy

## Raincloud plot
apt %>% 
  filter(!is.na(nback_comb)) %>% 
  ggplot(aes(x = session, y = nback_comb, group = session)) +
  geom_flat_violin(position = position_nudge(x = .25, y = 0),
                   adjust = 2, trim = TRUE, alpha = 0.3) +
  geom_point(position = position_jitter(width = .15), 
                        size = 0.5) +
  scale_y_continuous(labels = percent_format(accuracy=1)) +
  labs(title = "Combined accuracy on Dual N-Back Task by Session", 
       x = "Session", y = "Accuracy")

# Jitter plot  
J1 <- apt %>% 
  group_by(session) %>% 
  filter(!is.na(nback_comb)) %>% 
  summarize(mean=mean(nback_comb), sd = sd(nback_comb), se=std.error(nback_comb)) %>%
  ggplot(aes(x = session, y = mean, fill = session)) +
  geom_bar(stat = 'identity', position = position_dodge()) +
  coord_cartesian(ylim = c(0.5, 0.8)) +
  theme_minimal() +
  scale_y_continuous(labels = percent_format(accuracy=1)) +
  scale_fill_manual(values = c("#7bccc4", "#43a2ca", "#0868ac")) +
  labs(title = "Combined accuracy on Dual N-Back Task by Session", 
       x = "Session", y = "Accuracy")

limits <- aes(ymax = mean + se, ymin = mean - se)
J2 <- J1 + geom_errorbar(position = position_dodge(), 
                          limits, size = 0.5, width = 0.5) +
  scale_y_continuous(labels = percent_format(accuracy=1))
## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.
indiv <- apt %>% 
  filter(!is.na(nback_comb)) %>% 
  group_by(session, ppt) %>% 
  summarise(mean = mean(nback_comb)) #, sd = sd(nback_comb)) # requires trial-level data
## `summarise()` has grouped output by 'session'. You can override using the `.groups` argument.
pd <- position_dodge(0.5)
J3 <- J2 + geom_point(data=indiv, aes(group = ppt), size = 0.8, 
                       shape = 19, position = pd) +
    geom_line(data = indiv, aes(group = ppt),
                      size = 0.1, position = pd)

(J4 <- J3 + theme_bw() + 
    theme(panel.grid.major = element_blank(), 
          panel.grid.minor = element_blank(),
          panel.border = element_rect(colour = "black", size=0.5),
          axis.title.x = element_text(face = "bold"),
          legend.position = "none",
          axis.title.y = element_text(face = "bold"),
          axis.text.x=element_text(size=10, colour="black"),
          axis.text.y=element_text(colour="black")))  

Corsi Blocks

Block Span

# Raincloud plot
( R1 <- apt %>% 
  filter(!is.na(corsi_bspan)) %>% 
  ggplot(aes(x = session, y = corsi_bspan, group = session)) +
  geom_flat_violin(position = position_nudge(x = .25, y = 0),
                   adjust = 2, trim = TRUE, alpha = 0.3) +
  geom_point(position = position_jitter(width = .15), 
                        size = 0.5) +
  labs(title = "Block span on Corsi Blocks Task by Session", 
       x = "Session", y = "Block Span") )

# Jitter plot
J1 <- apt %>% 
  group_by(session) %>% 
  filter(!is.na(corsi_bspan)) %>% 
  summarize(mean=mean(corsi_bspan), sd = sd(corsi_bspan), se=std.error(corsi_bspan)) %>%
  ggplot(aes(x = session, y = mean, fill = session)) +
  coord_cartesian(ylim = c(0, 10)) +
  geom_bar(stat = 'identity', position = position_dodge()) +
  theme_minimal() +
  scale_fill_manual(values = c("#7bccc4", "#43a2ca", "#0868ac")) +
  labs(title = "Block span on Corsi Blocks Task by Session", 
       x = "Session", y = "Block Span")

limits <- aes(ymax = mean + se, ymin = mean - se)
J2 <- J1 + geom_errorbar(position = position_dodge(), 
                          limits, size = 0.5, width = 0.5)

indiv <- apt %>% 
  filter(!is.na(corsi_bspan)) %>% 
  group_by(session, ppt) %>% 
  summarise(mean = mean(corsi_bspan)) #, sd = sd(corsi_bspan)) # requires trial-level data
## `summarise()` has grouped output by 'session'. You can override using the `.groups` argument.
pd <- position_dodge(0.5)
J3 <- J2 + geom_point(data=indiv, aes(group = ppt), size = 0.8, 
                       shape = 19, position = pd) +
    geom_line(data = indiv, aes(group = ppt),
                      size = 0.1, position = pd)

(J4 <- J3 + theme_bw() + 
    theme(panel.grid.major = element_blank(), 
          panel.grid.minor = element_blank(),
          panel.border = element_rect(colour = "black", size=0.5),
          axis.title.x = element_text(face = "bold"),
          legend.position = "none",
          axis.title.y = element_text(face = "bold"),
          axis.text.x=element_text(size=10, colour="black"),
          axis.text.y=element_text(colour="black")))  

Raw Score

# Raincloud plot
( R1 <- apt %>% 
  filter(!is.na(corsi_score)) %>% 
  ggplot(aes(x = session, y = corsi_score, group = session)) +
  geom_flat_violin(position = position_nudge(x = .25, y = 0),
                   adjust = 2, trim = TRUE, alpha = 0.3) +
  geom_point(position = position_jitter(width = .15), 
                        size = 0.5) +
  labs(title = "Raw Score on Corsi Blocks Task by Session", 
       x = "Session", y = "Score") )

# Jitter plot
J1 <- apt %>% 
  group_by(session) %>% 
  filter(!is.na(corsi_score)) %>% 
  summarize(mean=mean(corsi_score), sd = sd(corsi_score), se=std.error(corsi_score)) %>%
  ggplot(aes(x = session, y = mean, fill = session)) +
  coord_cartesian(ylim = c(0, 125)) +
  geom_bar(stat = 'identity', position = position_dodge()) +
  theme_minimal() +
  scale_fill_manual(values = c("#7bccc4", "#43a2ca", "#0868ac")) +
  labs(title = "Raw Score on Corsi Blocks Task by Session", 
       x = "Session", y = "Score")

limits <- aes(ymax = mean + se, ymin = mean - se)
J2 <- J1 + geom_errorbar(position = position_dodge(), 
                          limits, size = 0.5, width = 0.5)

indiv <- apt %>% 
  filter(!is.na(corsi_score)) %>% 
  group_by(session, ppt) %>% 
  summarise(mean = mean(corsi_score)) #, sd = sd(corsi_score)) # requires trial-level data
## `summarise()` has grouped output by 'session'. You can override using the `.groups` argument.
pd <- position_dodge(0.5)
J3 <- J2 + geom_point(data=indiv, aes(group = ppt), size = 0.8, 
                       shape = 19, position = pd) +
    geom_line(data = indiv, aes(group = ppt),
                      size = 0.1, position = pd)

(J4 <- J3 + theme_bw() + 
    theme(panel.grid.major = element_blank(), 
          panel.grid.minor = element_blank(),
          panel.border = element_rect(colour = "black", size=0.5),
          axis.title.x = element_text(face = "bold"),
          legend.position = "none",
          axis.title.y = element_text(face = "bold"),
          axis.text.x=element_text(size=10, colour="black"),
          axis.text.y=element_text(colour="black")))  

Correct Responses

# Raincloud plot
( R1 <- apt %>% 
  filter(!is.na(corsi_corr)) %>% 
  ggplot(aes(x = session, y = corsi_corr, group = session)) +
  geom_flat_violin(position = position_nudge(x = .25, y = 0),
                   adjust = 2, trim = TRUE, alpha = 0.3) +
  geom_point(position = position_jitter(width = .15), 
                        size = 0.5)  +
  coord_cartesian(ylim = c(5, 15)) +
  scale_y_continuous(labels = scales::number_format(accuracy = 1)) +
  labs(title = "Correct Responses on Corsi Blocks Task by Session", 
       x = "Session", y = "Correct Response") )

# Jitter plot
J1 <- apt %>% 
  group_by(session) %>% 
  filter(!is.na(corsi_corr)) %>% 
  summarize(mean=mean(corsi_corr), sd = sd(corsi_corr), se=std.error(corsi_corr)) %>%
  ggplot(aes(x = session, y = mean, fill = session)) +
  coord_cartesian(ylim = c(0, 15)) +
  geom_bar(stat = 'identity', position = position_dodge()) +
  theme_minimal() +
  scale_fill_manual(values = c("#7bccc4", "#43a2ca", "#0868ac")) +
  labs(title = "Correct Responses on Corsi Blocks Task by Session", 
       x = "Session", y = "Correct Response")

limits <- aes(ymax = mean + se, ymin = mean - se)
J2 <- J1 + geom_errorbar(position = position_dodge(), 
                          limits, size = 0.5, width = 0.5)

indiv <- apt %>% 
  filter(!is.na(corsi_corr)) %>% 
  group_by(session, ppt) %>% 
  summarise(mean = mean(corsi_corr)) #, sd = sd(corsi_corr)) # requires trial-level data
## `summarise()` has grouped output by 'session'. You can override using the `.groups` argument.
pd <- position_dodge(0.5)
J3 <- J2 + geom_point(data=indiv, aes(group = ppt), size = 0.8, 
                       shape = 19, position = pd) +
    geom_line(data = indiv, aes(group = ppt),
                      size = 0.1, position = pd)

(J4 <- J3 + theme_bw() + 
    theme(panel.grid.major = element_blank(), 
          panel.grid.minor = element_blank(),
          panel.border = element_rect(colour = "black", size=0.5),
          axis.title.x = element_text(face = "bold"),
          legend.position = "none",
          axis.title.y = element_text(face = "bold"),
          axis.text.x=element_text(size=10, colour="black"),
          axis.text.y=element_text(colour="black")))  

Memory Span

# Raincloud plot
( R1 <- apt %>% 
  filter(!is.na(corsi_mspan)) %>% 
  ggplot(aes(x = session, y = corsi_mspan, group = session)) +
  geom_flat_violin(position = position_nudge(x = .25, y = 0),
                   adjust = 2, trim = TRUE, alpha = 0.3) +
  geom_point(position = position_jitter(width = .15), 
                        size = 0.5) +
  labs(title = "Memory Span on Corsi Blocks Task by Session", 
       x = "Session", y = "Memory Span") )

# Jitter plot
J1 <- apt %>% 
  group_by(session) %>% 
  filter(!is.na(corsi_mspan)) %>% 
  summarize(mean=mean(corsi_mspan), sd = sd(corsi_mspan), se=std.error(corsi_mspan)) %>%
  ggplot(aes(x = session, y = mean, fill = session)) +
  coord_cartesian(ylim = c(0, 8)) +
  geom_bar(stat = 'identity', position = position_dodge()) +
  theme_minimal() +
  scale_fill_manual(values = c("#7bccc4", "#43a2ca", "#0868ac")) +
  labs(title = "Memory Span on Corsi Blocks Task by Session", 
       x = "Session", y = "Memory Span")

limits <- aes(ymax = mean + se, ymin = mean - se)
J2 <- J1 + geom_errorbar(position = position_dodge(), 
                          limits, size = 0.5, width = 0.5)

indiv <- apt %>% 
  filter(!is.na(corsi_mspan)) %>% 
  group_by(session, ppt) %>% 
  summarise(mean = mean(corsi_mspan)) #, sd = sd(corsi_mspan)) # requires trial-level data
## `summarise()` has grouped output by 'session'. You can override using the `.groups` argument.
pd <- position_dodge(0.5)
J3 <- J2 + geom_point(data=indiv, aes(group = ppt), size = 0.8, 
                       shape = 19, position = pd) +
    geom_line(data = indiv, aes(group = ppt),
                      size = 0.1, position = pd)

(J4 <- J3 + theme_bw() + 
    theme(panel.grid.major = element_blank(), 
          panel.grid.minor = element_blank(),
          panel.border = element_rect(colour = "black", size=0.5),
          axis.title.x = element_text(face = "bold"),
          legend.position = "none",
          axis.title.y = element_text(face = "bold"),
          axis.text.x=element_text(size=10, colour="black"),
          axis.text.y=element_text(colour="black")))  

Kirklees Sentence Reading

Ceiling Score

# Raincloud plot
( R1 <- apt %>% 
  filter(!is.na(kirk_ceil)) %>% 
  ggplot(aes(x = session, y = kirk_ceil, group = session)) +
  geom_flat_violin(position = position_nudge(x = .25, y = 0),
                   adjust = 2, trim = TRUE, alpha = 0.3) +
  geom_point(position = position_jitter(width = .15), 
                        size = 0.5) +
  labs(title = "Ceiling Score on Kirklees Sentence Reading Task by Session", 
       x = "Session", y = "Ceiling Score") )

# Jitter plot
J1 <- apt %>% 
  group_by(session) %>% 
  filter(!is.na(kirk_ceil)) %>% 
  summarize(mean=mean(kirk_ceil), sd = sd(kirk_ceil), se=std.error(kirk_ceil)) %>%
  ggplot(aes(x = session, y = mean, fill = session)) +
  coord_cartesian(ylim = c(0, 45)) +
  geom_bar(stat = 'identity', position = position_dodge()) +
  theme_minimal() +
  scale_fill_manual(values = c("#7bccc4", "#43a2ca", "#0868ac")) +
  labs(title = "Ceiling Score on Kirklees Sentence Reading Task by Session", 
       x = "Session", y = "Ceiling Score")

limits <- aes(ymax = mean + se, ymin = mean - se)
J2 <- J1 + geom_errorbar(position = position_dodge(), 
                          limits, size = 0.5, width = 0.5)

indiv <- apt %>% 
  filter(!is.na(kirk_ceil)) %>% 
  group_by(session, ppt) %>% 
  summarise(mean = mean(kirk_ceil)) #, sd = sd(kirk_ceil) # requires trial-level data
## `summarise()` has grouped output by 'session'. You can override using the `.groups` argument.
pd <- position_dodge(0.5)
J3 <- J2 + geom_point(data=indiv, aes(group = ppt), size = 0.8, 
                       shape = 19, position = pd) +
    geom_line(data = indiv, aes(group = ppt),
                      size = 0.1, position = pd)

(J4 <- J3 + theme_bw() + 
    theme(panel.grid.major = element_blank(), 
          panel.grid.minor = element_blank(),
          panel.border = element_rect(colour = "black", size=0.5),
          axis.title.x = element_text(face = "bold"),
          legend.position = "none",
          axis.title.y = element_text(face = "bold"),
          axis.text.x=element_text(size=10, colour="black"),
          axis.text.y=element_text(colour="black")))  

Raw Score

# Raincloud plot
( R1 <- apt %>% 
  filter(!is.na(kirk_raw)) %>% 
  ggplot(aes(x = session, y = kirk_raw, group = session)) +
  geom_flat_violin(position = position_nudge(x = .25, y = 0),
                   adjust = 2, trim = TRUE, alpha = 0.3) +
  geom_point(position = position_jitter(width = .15), 
                        size = 0.5) +
  labs(title = "Raw Score on Kirklees Sentence Reading Task by Session", 
       x = "Session", y = "Ceiling Score") )

# Jitter plot
J1 <- apt %>% 
  group_by(session) %>% 
  filter(!is.na(kirk_raw)) %>% 
  summarize(mean=mean(kirk_raw), sd = sd(kirk_raw), se=std.error(kirk_raw)) %>%
  ggplot(aes(x = session, y = mean, fill = session)) +
  coord_cartesian(ylim = c(0, 45)) +
  geom_bar(stat = 'identity', position = position_dodge()) +
  theme_minimal() +
  scale_fill_manual(values = c("#7bccc4", "#43a2ca", "#0868ac")) +
  labs(title = "Raw Score on Kirklees Sentence Reading Task by Session", 
       x = "Session", y = "Raw Score")

limits <- aes(ymax = mean + se, ymin = mean - se)
J2 <- J1 + geom_errorbar(position = position_dodge(), 
                          limits, size = 0.5, width = 0.5)

indiv <- apt %>% 
  filter(!is.na(kirk_raw)) %>% 
  group_by(session, ppt) %>% 
  summarise(mean = mean(kirk_raw)) #, sd = sd(kirk_raw) # requires trial-level data
## `summarise()` has grouped output by 'session'. You can override using the `.groups` argument.
pd <- position_dodge(0.5)
J3 <- J2 + geom_point(data=indiv, aes(group = ppt), size = 0.8, 
                       shape = 19, position = pd) +
    geom_line(data = indiv, aes(group = ppt),
                      size = 0.1, position = pd)

(J4 <- J3 + theme_bw() + 
    theme(panel.grid.major = element_blank(), 
          panel.grid.minor = element_blank(),
          panel.border = element_rect(colour = "black", size=0.5),
          axis.title.x = element_text(face = "bold"),
          legend.position = "none",
          axis.title.y = element_text(face = "bold"),
          axis.text.x=element_text(size=10, colour="black"),
          axis.text.y=element_text(colour="black")))  

Accuracy

# Raincloud plot
( R1 <- apt %>% 
  filter(!is.na(kirk_acc)) %>% 
  ggplot(aes(x = session, y = kirk_acc, group = session)) +
  geom_flat_violin(position = position_nudge(x = .25, y = 0),
                   adjust = 2, trim = TRUE, alpha = 0.3) +
  geom_point(position = position_jitter(width = .15), 
                        size = 0.5) +
  coord_cartesian(ylim = c(0.45, 1)) +
  scale_y_continuous(labels = percent_format(accuracy=1)) +
  labs(title = "Accuracy on Kirklees Sentence Reading Task by Session", 
       x = "Session", y = "Accuracy") )

# Jitter plot
J1 <- apt %>% 
  group_by(session) %>% 
  filter(!is.na(kirk_acc)) %>% 
  summarize(mean=mean(kirk_acc), sd = sd(kirk_acc), se=std.error(kirk_acc)) %>%
  ggplot(aes(x = session, y = mean, fill = session)) +
  coord_cartesian(ylim = c(0, 1)) +
  geom_bar(stat = 'identity', position = position_dodge()) +
  theme_minimal() +
  scale_fill_manual(values = c("#7bccc4", "#43a2ca", "#0868ac")) +
  scale_y_continuous(labels = percent_format(accuracy=1)) +
  labs(title = "Accuracy on Kirklees Sentence Reading Task by Session", 
       x = "Session", y = "Accuracy")

limits <- aes(ymax = mean + se, ymin = mean - se)
J2 <- J1 + geom_errorbar(position = position_dodge(), 
                          limits, size = 0.5, width = 0.5)

indiv <- apt %>% 
  filter(!is.na(kirk_acc)) %>% 
  group_by(session, ppt) %>% 
  summarise(mean = mean(kirk_acc)) #, sd = sd(kirk_acc) # requires trial-level data
## `summarise()` has grouped output by 'session'. You can override using the `.groups` argument.
pd <- position_dodge(0.5)
J3 <- J2 + geom_point(data=indiv, aes(group = ppt), size = 0.8, 
                       shape = 19, position = pd) +
    geom_line(data = indiv, aes(group = ppt),
                      size = 0.1, position = pd)

(J4 <- J3 + theme_bw() + 
    theme(panel.grid.major = element_blank(), 
          panel.grid.minor = element_blank(),
          panel.border = element_rect(colour = "black", size=0.5),
          axis.title.x = element_text(face = "bold"),
          legend.position = "none",
          axis.title.y = element_text(face = "bold"),
          axis.text.x=element_text(size=10, colour="black"),
          axis.text.y=element_text(colour="black")))  

KBIT-2 Matrices

Ceiling Score

# Raincloud plot
( R1 <- apt %>% 
  filter(!is.na(kbit_ceil)) %>% 
  ggplot(aes(x = session, y = kbit_ceil, group = session)) +
  geom_flat_violin(position = position_nudge(x = .25, y = 0),
                   adjust = 2, trim = TRUE, alpha = 0.3) +
  geom_point(position = position_jitter(width = .15), 
                        size = 0.5) +
  labs(title = "Ceiling Score on KBIT-2 Matrices Task by Session", 
       x = "Session", y = "Ceiling Score") )

# Jitter plot
J1 <- apt %>% 
  group_by(session) %>% 
  filter(!is.na(kbit_ceil)) %>% 
  summarize(mean=mean(kbit_ceil), sd = sd(kbit_ceil), se=std.error(kbit_ceil)) %>%
  ggplot(aes(x = session, y = mean, fill = session)) +
  coord_cartesian(ylim = c(0, 48)) +
  geom_bar(stat = 'identity', position = position_dodge()) +
  theme_minimal() +
  scale_fill_manual(values = c("#7bccc4", "#43a2ca", "#0868ac")) +
  labs(title = "Ceiling Score on KBIT-2 Matrices Task by Session", 
       x = "Session", y = "Ceiling Score")

limits <- aes(ymax = mean + se, ymin = mean - se)
J2 <- J1 + geom_errorbar(position = position_dodge(), 
                          limits, size = 0.5, width = 0.5)

indiv <- apt %>% 
  filter(!is.na(kirk_ceil)) %>% 
  group_by(session, ppt) %>% 
  summarise(mean = mean(kbit_ceil)) #, sd = sd(kbit_ceil) # requires trial-level data
## `summarise()` has grouped output by 'session'. You can override using the `.groups` argument.
pd <- position_dodge(0.5)
J3 <- J2 + geom_point(data=indiv, aes(group = ppt), size = 0.8, 
                       shape = 19, position = pd) +
    geom_line(data = indiv, aes(group = ppt),
                      size = 0.1, position = pd)

(J4 <- J3 + theme_bw() + 
    theme(panel.grid.major = element_blank(), 
          panel.grid.minor = element_blank(),
          panel.border = element_rect(colour = "black", size=0.5),
          axis.title.x = element_text(face = "bold"),
          legend.position = "none",
          axis.title.y = element_text(face = "bold"),
          axis.text.x=element_text(size=10, colour="black"),
          axis.text.y=element_text(colour="black")))  

Raw Score

# Raincloud plot
( R1 <- apt %>% 
  filter(!is.na(kbit_raw)) %>% 
  ggplot(aes(x = session, y = kbit_raw, group = session)) +
  geom_flat_violin(position = position_nudge(x = .25, y = 0),
                   adjust = 2, trim = TRUE, alpha = 0.3) +
  geom_point(position = position_jitter(width = .15), 
                        size = 0.5) +
  labs(title = "Raw Score on KBIT-2 Matrices Task by Session", 
       x = "Session", y = "Ceiling Score") )

# Jitter plot
J1 <- apt %>% 
  group_by(session) %>% 
  filter(!is.na(kbit_raw)) %>% 
  summarize(mean=mean(kbit_raw), sd = sd(kbit_raw), se=std.error(kbit_raw)) %>%
  ggplot(aes(x = session, y = mean, fill = session)) +
  coord_cartesian(ylim = c(0, 45)) +
  geom_bar(stat = 'identity', position = position_dodge()) +
  theme_minimal() +
  scale_fill_manual(values = c("#7bccc4", "#43a2ca", "#0868ac")) +
  labs(title = "Raw Score on KBIT-2 Matrices Task by Session", 
       x = "Session", y = "Raw Score")

limits <- aes(ymax = mean + se, ymin = mean - se)
J2 <- J1 + geom_errorbar(position = position_dodge(), 
                          limits, size = 0.5, width = 0.5)

indiv <- apt %>% 
  filter(!is.na(kbit_raw)) %>% 
  group_by(session, ppt) %>% 
  summarise(mean = mean(kbit_raw)) #, sd = sd(kbit_raw) # requires trial-level data
## `summarise()` has grouped output by 'session'. You can override using the `.groups` argument.
pd <- position_dodge(0.5)
J3 <- J2 + geom_point(data=indiv, aes(group = ppt), size = 0.8, 
                       shape = 19, position = pd) +
    geom_line(data = indiv, aes(group = ppt),
                      size = 0.1, position = pd)

(J4 <- J3 + theme_bw() + 
    theme(panel.grid.major = element_blank(), 
          panel.grid.minor = element_blank(),
          panel.border = element_rect(colour = "black", size=0.5),
          axis.title.x = element_text(face = "bold"),
          legend.position = "none",
          axis.title.y = element_text(face = "bold"),
          axis.text.x=element_text(size=10, colour="black"),
          axis.text.y=element_text(colour="black")))  

Accuracy

# Raincloud plot
( R1 <- apt %>% 
  filter(!is.na(kbit_acc)) %>% 
  ggplot(aes(x = session, y = kbit_acc, group = session)) +
  geom_flat_violin(position = position_nudge(x = .25, y = 0),
                   adjust = 2, trim = TRUE, alpha = 0.3) +
  geom_point(position = position_jitter(width = .15), 
                        size = 0.5) +
  coord_cartesian(ylim = c(.65, 1)) +
  scale_y_continuous(labels = percent_format(accuracy=1)) +
  labs(title = "Accuracy on KBIT-2 Matrices Task by Session", 
       x = "Session", y = "Accuracy") )

# Jitter plot
J1 <- apt %>% 
  group_by(session) %>% 
  filter(!is.na(kbit_acc)) %>% 
  summarize(mean=mean(kbit_acc), 
            sd = sd(kbit_acc), se=std.error(kbit_acc)) %>%
  ggplot(aes(x = session, y = mean, fill = session)) +
  coord_cartesian(ylim = c(.5, 1)) +
  geom_bar(stat = 'identity', position = position_dodge()) +
  theme_minimal() +
  scale_fill_manual(values = c("#7bccc4", "#43a2ca", "#0868ac")) +
  scale_y_continuous(labels = percent_format(accuracy=1)) +
  labs(title = "Accuracy on KBIT-2 Matrices Task by Session", 
       x = "Session", y = "Accuracy")

limits <- aes(ymax = mean + se, ymin = mean - se)
J2 <- J1 + geom_errorbar(position = position_dodge(), 
                          limits, size = 0.5, width = 0.5)

indiv <- apt %>% 
  filter(!is.na(kbit_acc)) %>% 
  group_by(session, ppt) %>% 
  summarise(mean = mean(kbit_acc)) #, sd = sd(kbit_acc) # requires trial-level data
## `summarise()` has grouped output by 'session'. You can override using the `.groups` argument.
pd <- position_dodge(0.5)
J3 <- J2 + geom_point(data=indiv, aes(group = ppt), size = 0.8, 
                       shape = 19, position = pd) +
    geom_line(data = indiv, aes(group = ppt),
                      size = 0.1, position = pd)

(J4 <- J3 + theme_bw() + 
    theme(panel.grid.major = element_blank(), 
          panel.grid.minor = element_blank(),
          panel.border = element_rect(colour = "black", size=0.5),
          axis.title.x = element_text(face = "bold"),
          legend.position = "none",
          axis.title.y = element_text(face = "bold"),
          axis.text.x=element_text(size=10, colour="black"),
          axis.text.y=element_text(colour="black")))  

Digit Span

Accuracy

# Raincloud plot
( R1 <- apt %>% 
  filter(!is.na(dspan_corr)) %>% 
  ggplot(aes(x = session, y = dspan_corr, group = session)) +
  geom_flat_violin(position = position_nudge(x = .25, y = 0),
                   adjust = 2, trim = TRUE, alpha = 0.3) +
  geom_point(position = position_jitter(width = .15), 
                        size = 0.5)  +
  coord_cartesian(ylim = c(0.5, 0.9)) +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1L)) +
  labs(title = "Accuracy on Digit Span Task by Session", 
       x = "Session", y = "Accuracy") )

# Jitter plot
J1 <- apt %>% 
  group_by(session) %>% 
  filter(!is.na(dspan_corr)) %>% 
  summarize(mean=mean(dspan_corr), sd = sd(dspan_corr), se=std.error(dspan_corr)) %>%
  ggplot(aes(x = session, y = mean, fill = session)) +
  coord_cartesian(ylim = c(0.5, 0.9)) +
  geom_bar(stat = 'identity', position = position_dodge()) +
  theme_minimal() +
  scale_fill_manual(values = c("#7bccc4", "#43a2ca", "#0868ac")) +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1L)) +
  labs(title = "Accuracy on Digit Span Task by Session", 
       x = "Session", y = "Accuracy")

limits <- aes(ymax = mean + se, ymin = mean - se)
J2 <- J1 + geom_errorbar(position = position_dodge(), 
                          limits, size = 0.5, width = 0.5)

indiv <- apt %>% 
  filter(!is.na(dspan_corr)) %>% 
  group_by(session, ppt) %>% 
  summarise(mean = mean(dspan_corr)) #, sd = sd(dspan_corr)) # requires trial-level data
## `summarise()` has grouped output by 'session'. You can override using the `.groups` argument.
pd <- position_dodge(0.5)
J3 <- J2 + geom_point(data=indiv, aes(group = ppt), size = 0.8, 
                       shape = 19, position = pd) +
    geom_line(data = indiv, aes(group = ppt),
                      size = 0.1, position = pd)

(J4 <- J3 + theme_bw() + 
    theme(panel.grid.major = element_blank(), 
          panel.grid.minor = element_blank(),
          panel.border = element_rect(colour = "black", size=0.5),
          axis.title.x = element_text(face = "bold"),
          legend.position = "none",
          axis.title.y = element_text(face = "bold"),
          axis.text.x=element_text(size=10, colour="black"),
          axis.text.y=element_text(colour="black")))  

Memory Span

# Raincloud plot
( R1 <- apt %>% 
  filter(!is.na(dspan_mem)) %>% 
  ggplot(aes(x = session, y = dspan_mem, group = session)) +
  geom_flat_violin(position = position_nudge(x = .25, y = 0),
                   adjust = 2, trim = TRUE, alpha = 0.3) +
  geom_point(position = position_jitter(width = .15), 
                        size = 0.5) +
  coord_cartesian(ylim = c(4, 11)) +
  labs(title = "Memory Span on Digit Span Task by Session", 
       x = "Session", y = "Memory Span") )

# Jitter plot
J1 <- apt %>% 
  group_by(session) %>% 
  filter(!is.na(dspan_mem)) %>% 
  summarize(mean=mean(dspan_mem), 
            sd = sd(dspan_mem), se=std.error(dspan_mem)) %>%
  ggplot(aes(x = session, y = mean, fill = session)) +
  coord_cartesian(ylim = c(0, 8)) +
  geom_bar(stat = 'identity', position = position_dodge()) +
  theme_minimal() +
  scale_fill_manual(values = c("#7bccc4", "#43a2ca", "#0868ac")) +
  coord_cartesian(ylim = c(4, 11)) +
  labs(title = "Memory Span on Digit Span Task by Session", 
       x = "Session", y = "Memory Span")
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
limits <- aes(ymax = mean + se, ymin = mean - se)
J2 <- J1 + geom_errorbar(position = position_dodge(), 
                          limits, size = 0.5, width = 0.5)

indiv <- apt %>% 
  filter(!is.na(dspan_mem)) %>% 
  group_by(session, ppt) %>% 
  summarise(mean = mean(dspan_mem)) #, sd = sd(dspan_mem)) # requires trial-level data
## `summarise()` has grouped output by 'session'. You can override using the `.groups` argument.
pd <- position_dodge(0.5)
J3 <- J2 + geom_point(data=indiv, aes(group = ppt), size = 0.8, 
                       shape = 19, position = pd) +
    geom_line(data = indiv, aes(group = ppt),
                      size = 0.1, position = pd)

(J4 <- J3 + theme_bw() + 
    theme(panel.grid.major = element_blank(), 
          panel.grid.minor = element_blank(),
          panel.border = element_rect(colour = "black", size=0.5),
          axis.title.x = element_text(face = "bold"),
          legend.position = "none",
          axis.title.y = element_text(face = "bold"),
          axis.text.x=element_text(size=10, colour="black"),
          axis.text.y=element_text(colour="black")))  

Time spent

# Raincloud plot
( R1 <- apt %>% 
  filter(!is.na(dspan_time)) %>% 
  ggplot(aes(x = session, y = dspan_time, group = session)) +
  geom_flat_violin(position = position_nudge(x = .25, y = 0),
                   adjust = 2, trim = TRUE, alpha = 0.3) +
  geom_point(position = position_jitter(width = .15), 
                        size = 0.5) +
  coord_cartesian(ylim = c(0, 8)) +
  labs(title = "Time spent on Digit Span Task by Session", 
       x = "Session", y = "Memory Span") )

# Jitter plot
J1 <- apt %>% 
  group_by(session) %>% 
  filter(!is.na(dspan_time)) %>% 
  summarize(mean=mean(dspan_time), 
            sd = sd(dspan_time), se=std.error(dspan_time)) %>%
  ggplot(aes(x = session, y = mean, fill = session)) +
  coord_cartesian(ylim = c(0, 8)) +
  geom_bar(stat = 'identity', position = position_dodge()) +
  theme_minimal() +
  scale_fill_manual(values = c("#7bccc4", "#43a2ca", "#0868ac")) +
  coord_cartesian(ylim = c(0, 8)) +
  labs(title = "Time spent on Digit Span Task by Session", 
       x = "Session", y = "Memory Span")
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
limits <- aes(ymax = mean + se, ymin = mean - se)
J2 <- J1 + geom_errorbar(position = position_dodge(), 
                          limits, size = 0.5, width = 0.5)

indiv <- apt %>% 
  filter(!is.na(dspan_time)) %>% 
  group_by(session, ppt) %>% 
  summarise(mean = mean(dspan_time)) #, sd = sd(dspan_time)) # requires trial-level data
## `summarise()` has grouped output by 'session'. You can override using the `.groups` argument.
pd <- position_dodge(0.5)
J3 <- J2 + geom_point(data=indiv, aes(group = ppt), size = 0.8, 
                       shape = 19, position = pd) +
    geom_line(data = indiv, aes(group = ppt),
                      size = 0.1, position = pd)

(J4 <- J3 + theme_bw() + 
    theme(panel.grid.major = element_blank(), 
          panel.grid.minor = element_blank(),
          panel.border = element_rect(colour = "black", size=0.5),
          axis.title.x = element_text(face = "bold"),
          legend.position = "none",
          axis.title.y = element_text(face = "bold"),
          axis.text.x=element_text(size=10, colour="black"),
          axis.text.y=element_text(colour="black")))  

2D Mental Rotation

Accuracy

# Raincloud plot
( R1 <- apt %>% 
  filter(!is.na(mr2d_acc)) %>% 
  ggplot(aes(x = session, y = mr2d_acc, group = session)) +
  geom_flat_violin(position = position_nudge(x = .25, y = 0),
                   adjust = 2, trim = TRUE, alpha = 0.3) +
  geom_point(position = position_jitter(width = .15), 
                        size = 0.5)  +
  coord_cartesian(ylim = c(0.5, 1)) +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1L)) +
  labs(title = "Accuracy on 2D Mental Rotation Task by Session", 
       x = "Session", y = "Accuracy") )

# Jitter plot
J1 <- apt %>% 
  group_by(session) %>% 
  filter(!is.na(mr2d_acc)) %>% 
  summarize(mean=mean(mr2d_acc), sd = sd(mr2d_acc), se=std.error(mr2d_acc)) %>%
  ggplot(aes(x = session, y = mean, fill = session)) +
  coord_cartesian(ylim = c(0.5, 1)) +
  geom_bar(stat = 'identity', position = position_dodge()) +
  theme_minimal() +
  scale_fill_manual(values = c("#7bccc4", "#43a2ca", "#0868ac")) +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1L)) +
  labs(title = "Accuracy on 2D Mental Rotation Task by Session", 
       x = "Session", y = "Accuracy")

limits <- aes(ymax = mean + se, ymin = mean - se)
J2 <- J1 + geom_errorbar(position = position_dodge(), 
                          limits, size = 0.5, width = 0.5)

indiv <- apt %>% 
  filter(!is.na(mr2d_acc)) %>% 
  group_by(session, ppt) %>% 
  summarise(mean = mean(mr2d_acc)) #, sd = sd(mr2d_acc)) # requires trial-level data
## `summarise()` has grouped output by 'session'. You can override using the `.groups` argument.
pd <- position_dodge(0.5)
J3 <- J2 + geom_point(data=indiv, aes(group = ppt), size = 0.8, 
                       shape = 19, position = pd) +
    geom_line(data = indiv, aes(group = ppt),
                      size = 0.1, position = pd)

(J4 <- J3 + theme_bw() + 
    theme(panel.grid.major = element_blank(), 
          panel.grid.minor = element_blank(),
          panel.border = element_rect(colour = "black", size=0.5),
          axis.title.x = element_text(face = "bold"),
          legend.position = "none",
          axis.title.y = element_text(face = "bold"),
          axis.text.x=element_text(size=10, colour="black"),
          axis.text.y=element_text(colour="black")))  

Reaction Time

# Raincloud plot
( R1 <- apt %>% 
  filter(!is.na(mr2d_rt)) %>% 
  ggplot(aes(x = session, y = mr2d_rt, group = session)) +
  geom_flat_violin(position = position_nudge(x = .25, y = 0),
                   adjust = 2, trim = TRUE, alpha = 0.3) +
  geom_point(position = position_jitter(width = .15), 
                        size = 0.5)  +
  coord_cartesian(ylim = c(0, 9000)) +
  labs(title = "Reaction Time on 2D Mental Rotation Task by Session", 
       x = "Session", y = "RT (ms)") )

# Jitter plot
J1 <- apt %>% 
  group_by(session) %>% 
  filter(!is.na(mr2d_rt)) %>% 
  summarize(mean=mean(mr2d_rt), sd = sd(mr2d_rt), se=std.error(mr2d_rt)) %>%
  ggplot(aes(x = session, y = mean, fill = session)) +
  coord_cartesian(ylim = c(0, 9000)) +
  geom_bar(stat = 'identity', position = position_dodge()) +
  theme_minimal() +
  scale_fill_manual(values = c("#7bccc4", "#43a2ca", "#0868ac")) +
  labs(title = "Reaction Time on 2D Mental Rotation Task by Session", 
       x = "Session", y = "RT (ms)")

limits <- aes(ymax = mean + se, ymin = mean - se)
J2 <- J1 + geom_errorbar(position = position_dodge(), 
                          limits, size = 0.5, width = 0.5)

indiv <- apt %>% 
  filter(!is.na(mr2d_rt)) %>% 
  group_by(session, ppt) %>% 
  summarise(mean = mean(mr2d_rt)) #, sd = sd(mr2d_rt)) # requires trial-level data
## `summarise()` has grouped output by 'session'. You can override using the `.groups` argument.
pd <- position_dodge(0.5)
J3 <- J2 + geom_point(data=indiv, aes(group = ppt), size = 0.8, 
                       shape = 19, position = pd) +
    geom_line(data = indiv, aes(group = ppt),
                      size = 0.1, position = pd)

(J4 <- J3 + theme_bw() + 
    theme(panel.grid.major = element_blank(), 
          panel.grid.minor = element_blank(),
          panel.border = element_rect(colour = "black", size=0.5),
          axis.title.x = element_text(face = "bold"),
          legend.position = "none",
          axis.title.y = element_text(face = "bold"),
          axis.text.x=element_text(size=10, colour="black"),
          axis.text.y=element_text(colour="black")))  

3D Mental Rotation

Accuracy

# Raincloud plot
( R1 <- apt %>% 
  filter(!is.na(mr3d_acc)) %>% 
  filter(session != "1 year degree") %>% #only 2 ppts at 2nd session>filter out
  ggplot(aes(x = session, y = mr3d_acc, group = session)) +
  geom_flat_violin(position = position_nudge(x = .25, y = 0),
                   adjust = 2, trim = TRUE, alpha = 0.3) +
  geom_point(position = position_jitter(width = .15), 
                        size = 0.5)  +
  coord_cartesian(ylim = c(0, 1)) +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1L)) +
  labs(title = "Accuracy on 3D Mental Rotation Task by Session", 
       x = "Session", y = "Accuracy") )

# Jitter plot
J1 <- apt %>% 
  group_by(session) %>% 
  filter(!is.na(mr3d_acc)) %>% 
  filter(session != "1 year degree") %>% #only 2 ppts at 2nd session>filter out
  summarize(mean=mean(mr3d_acc), sd = sd(mr3d_acc), se=std.error(mr3d_acc)) %>%
  ggplot(aes(x = session, y = mean, fill = session)) +
  coord_cartesian(ylim = c(0, 1)) +
  geom_bar(stat = 'identity', position = position_dodge()) +
  theme_minimal() +
  scale_fill_manual(values = c("#7bccc4", "#43a2ca", "#0868ac")) +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1L)) +
  labs(title = "Accuracy on 3D Mental Rotation Task by Session", 
       x = "Session", y = "Accuracy")

limits <- aes(ymax = mean + se, ymin = mean - se)
J2 <- J1 + geom_errorbar(position = position_dodge(), 
                          limits, size = 0.5, width = 0.5)

indiv <- apt %>% 
  filter(!is.na(mr3d_acc)) %>% 
  filter(session != "1 year degree") %>% #only 2 ppts at 2nd session>filter out
  group_by(session, ppt) %>% 
  summarise(mean = mean(mr3d_acc)) #, sd = sd(mr3d_acc)) # requires trial-level data
## `summarise()` has grouped output by 'session'. You can override using the `.groups` argument.
pd <- position_dodge(0.5)
J3 <- J2 + geom_point(data=indiv, aes(group = ppt), size = 0.8, 
                       shape = 19, position = pd) +
    geom_line(data = indiv, aes(group = ppt),
                      size = 0.1, position = pd)

(J4 <- J3 + theme_bw() + 
    theme(panel.grid.major = element_blank(), 
          panel.grid.minor = element_blank(),
          panel.border = element_rect(colour = "black", size=0.5),
          axis.title.x = element_text(face = "bold"),
          legend.position = "none",
          axis.title.y = element_text(face = "bold"),
          axis.text.x=element_text(size=10, colour="black"),
          axis.text.y=element_text(colour="black")))  

Reaction Time

# Raincloud plot
( R1 <- apt %>% 
  filter(!is.na(mr3d_rt)) %>% 
  filter(session != "1 year degree") %>% #only 2 ppts at 2nd session>filter out
  ggplot(aes(x = session, y = mr3d_rt, group = session)) +
  geom_flat_violin(position = position_nudge(x = .25, y = 0),
                   adjust = 2, trim = TRUE, alpha = 0.3) +
  geom_point(position = position_jitter(width = .15), 
                        size = 0.5)  +
  coord_cartesian(ylim = c(0, 5000)) +
  labs(title = "Reaction Time on 3D Mental Rotation Task by Session", 
       x = "Session", y = "RT (ms)") )

# Jitter plot
J1 <- apt %>% 
  group_by(session) %>% 
  filter(!is.na(mr3d_rt)) %>% 
  filter(session != "1 year degree") %>% #only 2 ppts at 2nd session>filter out
  summarize(mean=mean(mr3d_rt), sd = sd(mr3d_rt), se=std.error(mr3d_rt)) %>%
  ggplot(aes(x = session, y = mean, fill = session)) +
  coord_cartesian(ylim = c(0, 5000)) +
  geom_bar(stat = 'identity', position = position_dodge()) +
  theme_minimal() +
  scale_fill_manual(values = c("#7bccc4", "#43a2ca", "#0868ac")) +
  labs(title = "Reaction Time on 3D Mental Rotation Task by Session", 
       x = "Session", y = "RT (ms)")

limits <- aes(ymax = mean + se, ymin = mean - se)
J2 <- J1 + geom_errorbar(position = position_dodge(), 
                          limits, size = 0.5, width = 0.5)

indiv <- apt %>% 
  filter(!is.na(mr3d_rt)) %>% 
  filter(session != "1 year degree") %>% #only 2 ppts at 2nd session>filter out
  group_by(session, ppt) %>% 
  summarise(mean = mean(mr3d_rt)) #, sd = sd(mr3d_rt)) # requires trial-level data
## `summarise()` has grouped output by 'session'. You can override using the `.groups` argument.
pd <- position_dodge(0.5)
J3 <- J2 + geom_point(data=indiv, aes(group = ppt), size = 0.8, 
                       shape = 19, position = pd) +
    geom_line(data = indiv, aes(group = ppt),
                      size = 0.1, position = pd)

(J4 <- J3 + theme_bw() + 
    theme(panel.grid.major = element_blank(), 
          panel.grid.minor = element_blank(),
          panel.border = element_rect(colour = "black", size=0.5),
          axis.title.x = element_text(face = "bold"),
          legend.position = "none",
          axis.title.y = element_text(face = "bold"),
          axis.text.x=element_text(size=10, colour="black"),
          axis.text.y=element_text(colour="black")))  

Effects of predictors on outcome variables

Effects of predictors on BSL Grades

Dual N-Back vs BSL Grades

Accuracy in Letter Matching
# Create wider pivot table
nback_lett_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, nback_lett, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(nback_lett, grade_bsl))

# Does Accuracy in Letter Matching on the Dual N-Back Task pre-degree predict BSL grades at the end of 1st year?
nback_lett_grade_bsl_wide %>%
  ggplot(aes(x = `nback_lett_pre-degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Letter Matching on the Dual N-Back Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = "Accuracy in Letter Matching on the Dual N-Back Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 2 rows containing non-finite values (stat_smooth).
## Warning: Removed 2 rows containing missing values (geom_point).

# Does Accuracy in Letter Matching on the Dual N-Back Task after 1 year of study predict BSL grades at the end of 1st year?
nback_lett_grade_bsl_wide %>%
  ggplot(aes(x = `nback_lett_1 year degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Letter Matching on the Dual N-Back Task after 1 year of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = "Accuracy in Letter Matching on the Dual N-Back Task after 1 year")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

# Does Accuracy in Letter Matching on the Dual N-Back Task after 2 years of study predict BSL grades at the end of 1st year?
nback_lett_grade_bsl_wide %>%
  ggplot(aes(x = `nback_lett_2 years degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Letter Matching on the Dual N-Back Task after 2 years of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = "Accuracy in Letter Matching on the Dual N-Back Task after 2 years")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Accuracy in Letter Matching on the Dual N-Back Task pre-degree predict BSL grades at the end of 2nd year?
nback_lett_grade_bsl_wide %>%
  ggplot(aes(x = `nback_lett_pre-degree`, y = `grade_bsl_2 years degree`)) +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Accuracy in Letter Matching on the Dual N-Back Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy in Letter Matching on the Dual N-Back Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 6 rows containing non-finite values (stat_smooth).
## Warning: Removed 6 rows containing missing values (geom_point).

# Does Accuracy in Letter Matching on the Dual N-Back Task after 1 year of study predict BSL grades at the end of 2nd year?
nback_lett_grade_bsl_wide %>%
  ggplot(aes(x = `nback_lett_1 year degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Letter Matching on the Dual N-Back Task after 1 year of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy in Letter Matching on the Dual N-Back Task after 1 year")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Accuracy in Letter Matching on the Dual N-Back Task after 2 years of study predict BSL grades at the end of 2nd year?
nback_lett_grade_bsl_wide %>%
  ggplot(aes(x = `nback_lett_2 years degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Letter Matching on the Dual N-Back Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy in Letter Matching on the Dual N-Back Task after 2 years")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

Accuracy in Spatial Matching
# Create wider pivot table
nback_spat_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, nback_spat, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(nback_spat, grade_bsl))

# Does Accuracy in Spatial Matching on the Dual N-Back Task pre-degree predict BSL grades at the end of 1st year?
nback_spat_grade_bsl_wide %>%
  ggplot(aes(x = `nback_spat_pre-degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Spatial Matching on the Dual N-Back Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = "Accuracy in Spatial Matching on the Dual N-Back Task pre-degre")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 2 rows containing non-finite values (stat_smooth).
## Warning: Removed 2 rows containing missing values (geom_point).

# Does Accuracy in Spatial Matching on the Dual N-Back Task after 1 year of study predict BSL grades at the end of 1st year?
nback_spat_grade_bsl_wide %>%
  ggplot(aes(x = `nback_spat_1 year degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Spatial Matching on the Dual N-Back Task after 1 year of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = "Accuracy in Spatial Matching on the Dual N-Back Task after 1 year")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

# Does Accuracy in Spatial Matching on the Dual N-Back Task after 2 years of study predict BSL grades at the end of 1st year?
nback_spat_grade_bsl_wide %>%
  ggplot(aes(x = `nback_spat_2 years degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Spatial Matching on the Dual N-Back Task after 2 years of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = "Accuracy in Spatial Matching on the Dual N-Back Task after 2 years")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Accuracy in Spatial Matching on the Dual N-Back Task pre-degree predict BSL grades at the end of 2nd year?
nback_spat_grade_bsl_wide %>%
  ggplot(aes(x = `nback_spat_pre-degree`, y = `grade_bsl_2 years degree`)) +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Accuracy in Spatial Matching on the Dual N-Back Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy in Spatial Matching on the Dual N-Back Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 6 rows containing non-finite values (stat_smooth).
## Warning: Removed 6 rows containing missing values (geom_point).

# Does Accuracy in Spatial Matching on the Dual N-Back Task after 1 year of study predict BSL grades at the end of 2nd year?
nback_spat_grade_bsl_wide %>%
  ggplot(aes(x = `nback_spat_1 year degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Spatial Matching on the Dual N-Back Task after 1 year of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy in Spatial Matching on the Dual N-Back Task after 1 year")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Accuracy in Spatial Matching on the Dual N-Back Task after 2 years of study predict BSL grades at the end of 2nd year?
nback_spat_grade_bsl_wide %>%
  ggplot(aes(x = `nback_spat_2 years degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Spatial Matching on the Dual N-Back Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy in Spatial Matching on the Dual N-Back Task after 2 years")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

Combined accuracy
# Create wider pivot table
nback_comb_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, nback_comb, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(nback_comb, grade_bsl))

# Does Combined Accuracy on the Dual N-Back Task pre-degree predict BSL grades at the end of 1st year?
nback_comb_grade_bsl_wide %>%
  ggplot(aes(x = `nback_comb_pre-degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Combined Accuracy on the Dual N-Back Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 2 rows containing non-finite values (stat_smooth).
## Warning: Removed 2 rows containing missing values (geom_point).

# Does Combined Accuracy on the Dual N-Back Task after 1 year of study predict BSL grades at the end of 1st year?
nback_comb_grade_bsl_wide %>%
  ggplot(aes(x = `nback_comb_1 year degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Combined Accuracy on the Dual N-Back Task after 1 year of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

# Does Combined Accuracy on the Dual N-Back Task after 2 years of study predict BSL grades at the end of 1st year?
nback_comb_grade_bsl_wide %>%
  ggplot(aes(x = `nback_comb_2 years degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Combined Accuracy on the Dual N-Back Task after 2 years of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Combined Accuracy on the Dual N-Back Task pre-degree predict BSL grades at the end of 2nd year?
nback_comb_grade_bsl_wide %>%
  ggplot(aes(x = `nback_comb_pre-degree`, y = `grade_bsl_2 years degree`)) +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Combined Accuracy on the Dual N-Back Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 6 rows containing non-finite values (stat_smooth).
## Warning: Removed 6 rows containing missing values (geom_point).

# Does Combined Accuracy on the Dual N-Back Task after 1 year of study predict BSL grades at the end of 2nd year?
nback_comb_grade_bsl_wide %>%
  ggplot(aes(x = `nback_comb_1 year degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Combined Accuracy on the Dual N-Back Task after 1 year of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Combined Accuracy on the Dual N-Back Task after 2 years of study predict BSL grades at the end of 2nd year?
nback_comb_grade_bsl_wide %>%
  ggplot(aes(x = `nback_comb_2 years degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Combined Accuracy on the Dual N-Back Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

Corsi Blocks vs BSL Grades

Block Span
# Create wider pivot table
corsi_bspan_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, corsi_bspan, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(corsi_bspan, grade_bsl))

# Does Block Span on the Corsi Blocks Task pre-degree predict BSL grades at the end of 1st year?
corsi_bspan_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_bspan_pre-degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Block Span on the Corsi Blocks Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 2 rows containing non-finite values (stat_smooth).
## Warning: Removed 2 rows containing missing values (geom_point).

# Does Block Span on the Corsi Blocks Task after 1 year of study predict BSL grades at the end of 1st year?
corsi_bspan_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_bspan_1 year degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Block Span on the Corsi Blocks Task after 1 year of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 20 rows containing non-finite values (stat_smooth).
## Warning: Removed 20 rows containing missing values (geom_point).

# Does Block Span on the Corsi Blocks Task after 2 years of study predict BSL grades at the end of 1st year?
corsi_bspan_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_bspan_2 years degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Block Span on the Corsi Blocks Task after 2 years of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Block Span on the Corsi Blocks Task pre-degree predict BSL grades at the end of 2nd year?
corsi_bspan_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_bspan_pre-degree`, y = `grade_bsl_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Block Span on the Corsi Blocks Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 6 rows containing non-finite values (stat_smooth).
## Warning: Removed 6 rows containing missing values (geom_point).

# Does Block Span on the Corsi Blocks Task after 1 year of study predict BSL grades at the end of 2nd year?
corsi_bspan_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_bspan_1 year degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Block Span on the Corsi Blocks Task after 1 year of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

# Does Block Span on the Corsi Blocks Task after 2 years of study predict BSL grades at the end of 2nd year?
corsi_bspan_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_bspan_2 years degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Block Span on the Corsi Blocks Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

Raw Score
# Create wider pivot table
corsi_score_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, corsi_score, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(corsi_score, grade_bsl))

# Does Raw Score on the Corsi Blocks Task pre-degree predict BSL grades at the end of 1st year?
corsi_score_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_score_pre-degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the Corsi Blocks Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 2 rows containing non-finite values (stat_smooth).
## Warning: Removed 2 rows containing missing values (geom_point).

# Does Raw Score on the Corsi Blocks Task after 1 year of study predict BSL grades at the end of 1st year?
corsi_score_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_score_1 year degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the Corsi Blocks Task after 1 year of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 20 rows containing non-finite values (stat_smooth).
## Warning: Removed 20 rows containing missing values (geom_point).

# Does Raw Score on the Corsi Blocks Task after 2 years of study predict BSL grades at the end of 1st year?
corsi_score_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_score_2 years degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the Corsi Blocks Task after 2 years of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Raw Score on the Corsi Blocks Task pre-degree predict BSL grades at the end of 2nd year?
corsi_score_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_score_pre-degree`, y = `grade_bsl_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Raw Score on the Corsi Blocks Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 6 rows containing non-finite values (stat_smooth).
## Warning: Removed 6 rows containing missing values (geom_point).

# Does Raw Score on the Corsi Blocks Task after 1 year of study predict BSL grades at the end of 2nd year?
corsi_score_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_score_1 year degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the Corsi Blocks Task after 1 year of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

# Does Raw Score on the Corsi Blocks Task after 2 years of study predict BSL grades at the end of 2nd year?
corsi_score_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_score_2 years degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the Corsi Blocks Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

Correct Responses
# Create wider pivot table
corsi_corr_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, corsi_corr, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(corsi_corr, grade_bsl))

# Do Correct Responses on the Corsi Blocks Task pre-degree predict BSL grades at the end of 1st year?
corsi_corr_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_corr_pre-degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Do Correct Responses on the Corsi Blocks Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 2 rows containing non-finite values (stat_smooth).
## Warning: Removed 2 rows containing missing values (geom_point).

# Do Correct Responses on the Corsi Blocks Task after 1 year of study predict BSL grades at the end of 1st year?
corsi_corr_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_corr_1 year degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Do Correct Responses on the Corsi Blocks Task after 1 year of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 20 rows containing non-finite values (stat_smooth).
## Warning: Removed 20 rows containing missing values (geom_point).

# Do Correct Responses on the Corsi Blocks Task after 2 years of study predict BSL grades at the end of 1st year?
corsi_corr_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_corr_2 years degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Do Correct Responses on the Corsi Blocks Task after 2 years of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Do Correct Responses on the Corsi Blocks Task pre-degree predict BSL grades at the end of 2nd year?
corsi_corr_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_corr_pre-degree`, y = `grade_bsl_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Do Correct Responses on the Corsi Blocks Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 6 rows containing non-finite values (stat_smooth).
## Warning: Removed 6 rows containing missing values (geom_point).

# Do Correct Responses on the Corsi Blocks Task after 1 year of study predict BSL grades at the end of 2nd year?
corsi_corr_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_corr_1 year degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Do Correct Responses on the Corsi Blocks Task after 1 year of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

# Do Correct Responses on the Corsi Blocks Task after 2 years of study predict BSL grades at the end of 2nd year?
corsi_corr_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_corr_2 years degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Do Correct Responses on the Corsi Blocks Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

Memory Span
# Create wider pivot table
corsi_mspan_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, corsi_mspan, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(corsi_mspan, grade_bsl))

# Does Memory Span on the Corsi Blocks Task pre-degree predict BSL grades at the end of 1st year?
corsi_mspan_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_mspan_pre-degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Memory Span on the Corsi Blocks Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 2 rows containing non-finite values (stat_smooth).
## Warning: Removed 2 rows containing missing values (geom_point).

# Does Memory Span on the Corsi Blocks Task after 1 year of study predict BSL grades at the end of 1st year?
corsi_mspan_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_mspan_1 year degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Memory Span on the Corsi Blocks Task after 1 year of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 20 rows containing non-finite values (stat_smooth).
## Warning: Removed 20 rows containing missing values (geom_point).

# Does Memory Span on the Corsi Blocks Task after 2 years of study predict BSL grades at the end of 1st year?
corsi_mspan_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_mspan_2 years degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Memory Span on the Corsi Blocks Task after 2 years of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Memory Span on the Corsi Blocks Task pre-degree predict BSL grades at the end of 2nd year?
corsi_mspan_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_mspan_pre-degree`, y = `grade_bsl_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Memory Span on the Corsi Blocks Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 6 rows containing non-finite values (stat_smooth).
## Warning: Removed 6 rows containing missing values (geom_point).

# Does Memory Span on the Corsi Blocks Task after 1 year of study predict BSL grades at the end of 2nd year?
corsi_mspan_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_mspan_1 year degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Memory Span on the Corsi Blocks Task after 1 year of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

# Does Memory Span on the Corsi Blocks Task after 2 years of study predict BSL grades at the end of 2nd year?
corsi_mspan_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_mspan_2 years degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Memory Span on the Corsi Blocks Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

Kirklees Sentence Reading vs BSL Grades

Ceiling Score
# Create wider pivot table
kirk_ceil_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, kirk_ceil, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(kirk_ceil, grade_bsl))

# Does Ceiling Score on the Kirklees Sentence Reading Task pre-degree predict BSL grades at the end of 1st year?
kirk_ceil_grade_bsl_wide %>%
  ggplot(aes(x = `kirk_ceil_pre-degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Ceiling Score on the Kirklees Sentence Reading Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 2 rows containing non-finite values (stat_smooth).
## Warning: Removed 2 rows containing missing values (geom_point).

# Does Ceiling Score on the Kirklees Sentence Reading Task after 1 year of study predict BSL grades at the end of 1st year?
kirk_ceil_grade_bsl_wide %>%
  ggplot(aes(x = `kirk_ceil_1 year degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Ceiling Score on the Kirklees Sentence Reading Task after 1 year of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Ceiling Score on the Kirklees Sentence Reading Task after 2 years of study predict BSL grades at the end of 1st year?
kirk_ceil_grade_bsl_wide %>%
  ggplot(aes(x = `kirk_ceil_2 years degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Ceiling Score on the Kirklees Sentence Reading Task after 2 years of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

# Does Ceiling Score on the Kirklees Sentence Reading Task pre-degree predict BSL grades at the end of 2nd year?
kirk_ceil_grade_bsl_wide %>%
  ggplot(aes(x = `kirk_ceil_pre-degree`, y = `grade_bsl_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Ceiling Score on the Kirklees Sentence Reading Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 6 rows containing non-finite values (stat_smooth).
## Warning: Removed 6 rows containing missing values (geom_point).

# Does Ceiling Score on the Kirklees Sentence Reading Task after 1 year of study predict BSL grades at the end of 2nd year?
kirk_ceil_grade_bsl_wide %>%
  ggplot(aes(x = `kirk_ceil_1 year degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Ceiling Score on the Kirklees Sentence Reading Task after 1 year of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Ceiling Score on the Kirklees Sentence Reading Task after 2 years of study predict BSL grades at the end of 2nd year?
kirk_ceil_grade_bsl_wide %>%
  ggplot(aes(x = `kirk_ceil_2 years degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Ceiling Score on the Kirklees Sentence Reading Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

Raw Score
# Create wider pivot table
kirk_raw_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, kirk_raw, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(kirk_raw, grade_bsl))

# Does Raw Score on the Kirklees Sentence Reading Task pre-degree predict BSL grades at the end of 1st year?
kirk_raw_grade_bsl_wide %>%
  ggplot(aes(x = `kirk_raw_pre-degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the Kirklees Sentence Reading Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 2 rows containing non-finite values (stat_smooth).
## Warning: Removed 2 rows containing missing values (geom_point).

# Does Raw Score on the Kirklees Sentence Reading Task after 1 year of study predict BSL grades at the end of 1st year?
kirk_raw_grade_bsl_wide %>%
  ggplot(aes(x = `kirk_raw_1 year degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the Kirklees Sentence Reading Task after 1 year of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Raw Score on the Kirklees Sentence Reading Task after 2 years of study predict BSL grades at the end of 1st year?
kirk_raw_grade_bsl_wide %>%
  ggplot(aes(x = `kirk_raw_2 years degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the Kirklees Sentence Reading Task after 2 years of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

# Does Raw Score on the Kirklees Sentence Reading Task pre-degree predict BSL grades at the end of 2nd year?
kirk_raw_grade_bsl_wide %>%
  ggplot(aes(x = `kirk_raw_pre-degree`, y = `grade_bsl_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Raw Score on the Kirklees Sentence Reading Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 6 rows containing non-finite values (stat_smooth).
## Warning: Removed 6 rows containing missing values (geom_point).

# Does Raw Score on the Kirklees Sentence Reading Task after 1 year of study predict BSL grades at the end of 2nd year?
kirk_raw_grade_bsl_wide %>%
  ggplot(aes(x = `kirk_raw_1 year degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the Kirklees Sentence Reading Task after 1 year of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Raw Score on the Kirklees Sentence Reading Task after 2 years of study predict BSL grades at the end of 2nd year?
kirk_raw_grade_bsl_wide %>%
  ggplot(aes(x = `kirk_raw_2 years degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the Kirklees Sentence Reading Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

Accuracy
# Create wider pivot table
kirk_acc_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, kirk_acc, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(kirk_acc, grade_bsl))

# Does Accuracy on the Kirklees Sentence Reading Task pre-degree predict BSL grades at the end of 1st year?
kirk_acc_grade_bsl_wide %>%
  ggplot(aes(x = `kirk_acc_pre-degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the Kirklees Sentence Reading Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = "Accuracy on the Kirklees Sentence Reading Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 2 rows containing non-finite values (stat_smooth).
## Warning: Removed 2 rows containing missing values (geom_point).

# Does Accuracy on the Kirklees Sentence Reading Task after 1 year of study predict BSL grades at the end of 1st year?
kirk_acc_grade_bsl_wide %>%
  ggplot(aes(x = `kirk_acc_1 year degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the Kirklees Sentence Reading Task after 1 year of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = "Accuracy on the Kirklees Sentence Reading Task after 1 year")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Accuracy on the Kirklees Sentence Reading Task after 2 years of study predict BSL grades at the end of 1st year?
kirk_acc_grade_bsl_wide %>%
  ggplot(aes(x = `kirk_acc_2 years degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the Kirklees Sentence Reading Task after 2 years of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = "Accuracy on the Kirklees Sentence Reading Task after 2 years")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

# Does Accuracy on the Kirklees Sentence Reading Task pre-degree predict BSL grades at the end of 2nd year?
kirk_acc_grade_bsl_wide %>%
  ggplot(aes(x = `kirk_acc_pre-degree`, y = `grade_bsl_2 years degree`)) +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Accuracy on the Kirklees Sentence Reading Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy on the Kirklees Sentence Reading Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 6 rows containing non-finite values (stat_smooth).
## Warning: Removed 6 rows containing missing values (geom_point).

# Does Accuracy on the Kirklees Sentence Reading Task after 1 year of study predict BSL grades at the end of 2nd year?
kirk_acc_grade_bsl_wide %>%
  ggplot(aes(x = `kirk_acc_1 year degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the Kirklees Sentence Reading Task after 1 year of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy on the Kirklees Sentence Reading Task after 1 year")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Accuracy on the Kirklees Sentence Reading Task after 2 years of study predict BSL grades at the end of 2nd year?
kirk_acc_grade_bsl_wide %>%
  ggplot(aes(x = `kirk_acc_2 years degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the Kirklees Sentence Reading Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy on the Kirklees Sentence Reading Task after 2 years")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

Correlations
kirk_acc_grade_bsl_wide %>% 
  filter(`kirk_acc_pre-degree`!= "NA") %>% 
  filter(`grade_bsl_1 year degree` != "NA") %>% 
  summarize(AccCOR=cor(`kirk_acc_pre-degree`, 
                       `grade_bsl_1 year degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.433
kirk_acc_grade_bsl_wide %>% 
  filter(`kirk_acc_1 year degree`!= "NA") %>% 
  filter(`grade_bsl_1 year degree` != "NA") %>% 
  summarize(AccCOR=cor(`kirk_acc_1 year degree`, 
                       `grade_bsl_1 year degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.340
kirk_acc_grade_bsl_wide %>% 
  filter(`kirk_acc_2 years degree`!= "NA") %>% 
  filter(`grade_bsl_1 year degree` != "NA") %>%
  summarize(AccCOR=cor(`kirk_acc_2 years degree`, 
                       `grade_bsl_1 year degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.303
kirk_acc_grade_bsl_wide %>% 
  filter(`kirk_acc_pre-degree`!= "NA") %>% 
  filter(`grade_bsl_2 years degree` != "NA") %>% 
  summarize(AccCOR=cor(`kirk_acc_pre-degree`, 
                       `grade_bsl_2 years degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.108
kirk_acc_grade_bsl_wide %>% 
  filter(`kirk_acc_1 year degree`!= "NA") %>% 
  filter(`grade_bsl_2 years degree` != "NA") %>% 
  summarize(AccCOR=cor(`kirk_acc_1 year degree`, 
                       `grade_bsl_2 years degree`))
## # A tibble: 1 x 1
##    AccCOR
##     <dbl>
## 1 -0.0910
kirk_acc_grade_bsl_wide %>% 
  filter(`kirk_acc_2 years degree`!= "NA") %>% 
  filter(`grade_bsl_2 years degree` != "NA") %>%
  summarize(AccCOR=cor(`kirk_acc_2 years degree`, 
                       `grade_bsl_2 years degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 0.0908

KBIT-2 Matrices vs BSL Grades

Ceiling Score
# Create wider pivot table
kbit_ceil_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, kbit_ceil, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(kbit_ceil, grade_bsl))

# Does Ceiling Score on the KBIT-2 Matrices Task pre-degree predict BSL grades at the end of 1st year?
kbit_ceil_grade_bsl_wide %>%
  ggplot(aes(x = `kbit_ceil_pre-degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Ceiling Score on the KBIT-2 Matrices Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 2 rows containing non-finite values (stat_smooth).
## Warning: Removed 2 rows containing missing values (geom_point).

# Does Ceiling Score on the KBIT-2 Matrices Task after 1 year of study predict BSL grades at the end of 1st year?
kbit_ceil_grade_bsl_wide %>%
  ggplot(aes(x = `kbit_ceil_1 year degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Ceiling Score on the KBIT-2 Matrices Task after 1 year of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Ceiling Score on the KBIT-2 Matrices Task after 2 years of study predict BSL grades at the end of 1st year?
kbit_ceil_grade_bsl_wide %>%
  ggplot(aes(x = `kbit_ceil_2 years degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Ceiling Score on the KBIT-2 Matrices Task after 2 years of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

# Does Ceiling Score on the KBIT-2 Matrices Task pre-degree predict BSL grades at the end of 2nd year?
kbit_ceil_grade_bsl_wide %>%
  ggplot(aes(x = `kbit_ceil_pre-degree`, y = `grade_bsl_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Ceiling Score on the KBIT-2 Matrices Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 6 rows containing non-finite values (stat_smooth).
## Warning: Removed 6 rows containing missing values (geom_point).

# Does Ceiling Score on the KBIT-2 Matrices Task after 1 year of study predict BSL grades at the end of 2nd year?
kbit_ceil_grade_bsl_wide %>%
  ggplot(aes(x = `kbit_ceil_1 year degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Ceiling Score on the KBIT-2 Matrices Task after 1 year of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Ceiling Score on the KBIT-2 Matrices Task after 2 years of study predict BSL grades at the end of 2nd year?
kbit_ceil_grade_bsl_wide %>%
  ggplot(aes(x = `kbit_ceil_2 years degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Ceiling Score on the KBIT-2 Matrices Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

Raw Score
# Create wider pivot table
kbit_raw_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, kbit_raw, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(kbit_raw, grade_bsl))

# Does Raw Score on the KBIT-2 Matrices Task pre-degree predict BSL grades at the end of 1st year?
kbit_raw_grade_bsl_wide %>%
  ggplot(aes(x = `kbit_raw_pre-degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the KBIT-2 Matrices Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 2 rows containing non-finite values (stat_smooth).
## Warning: Removed 2 rows containing missing values (geom_point).

# Does Raw Score on the KBIT-2 Matrices Task after 1 year of study predict BSL grades at the end of 1st year?
kbit_raw_grade_bsl_wide %>%
  ggplot(aes(x = `kbit_raw_1 year degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the KBIT-2 Matrices Task after 1 year of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Raw Score on the KBIT-2 Matrices Task after 2 years of study predict BSL grades at the end of 1st year?
kbit_raw_grade_bsl_wide %>%
  ggplot(aes(x = `kbit_raw_2 years degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the KBIT-2 Matrices Task after 2 years of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

# Does Raw Score on the KBIT-2 Matrices Task pre-degree predict BSL grades at the end of 2nd year?
kbit_raw_grade_bsl_wide %>%
  ggplot(aes(x = `kbit_raw_pre-degree`, y = `grade_bsl_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Raw Score on the KBIT-2 Matrices Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 6 rows containing non-finite values (stat_smooth).
## Warning: Removed 6 rows containing missing values (geom_point).

# Does Raw Score on the KBIT-2 Matrices Task after 1 year of study predict BSL grades at the end of 2nd year?
kbit_raw_grade_bsl_wide %>%
  ggplot(aes(x = `kbit_raw_1 year degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the KBIT-2 Matrices Task after 1 year of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Raw Score on the KBIT-2 Matrices Task after 2 years of study predict BSL grades at the end of 2nd year?
kbit_raw_grade_bsl_wide %>%
  ggplot(aes(x = `kbit_raw_2 years degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the KBIT-2 Matrices Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

Accuracy
# Create wider pivot table
kbit_acc_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, kbit_acc, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(kbit_acc, grade_bsl))

# Does Accuracy on the KBIT-2 Matrices Task pre-degree predict BSL grades at the end of 1st year?
kbit_acc_grade_bsl_wide %>%
  ggplot(aes(x = `kbit_acc_pre-degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the KBIT-2 Matrices Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 2 rows containing non-finite values (stat_smooth).
## Warning: Removed 2 rows containing missing values (geom_point).

# Does Accuracy on the KBIT-2 Matrices Task after 1 year of study predict BSL grades at the end of 1st year?
kbit_acc_grade_bsl_wide %>%
  ggplot(aes(x = `kbit_acc_1 year degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the KBIT-2 Matrices Task after 1 year of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Accuracy on the KBIT-2 Matrices Task after 2 years of study predict BSL grades at the end of 1st year?
kbit_acc_grade_bsl_wide %>%
  ggplot(aes(x = `kbit_acc_2 years degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the KBIT-2 Matrices Task after 2 years of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

# Does Accuracy on the KBIT-2 Matrices Task pre-degree predict BSL grades at the end of 2nd year?
kbit_acc_grade_bsl_wide %>%
  ggplot(aes(x = `kbit_acc_pre-degree`, y = `grade_bsl_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Accuracy on the KBIT-2 Matrices Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 6 rows containing non-finite values (stat_smooth).
## Warning: Removed 6 rows containing missing values (geom_point).

# Does Accuracy on the KBIT-2 Matrices Task after 1 year of study predict BSL grades at the end of 2nd year?
kbit_acc_grade_bsl_wide %>%
  ggplot(aes(x = `kbit_acc_1 year degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the KBIT-2 Matrices Task after 1 year of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Accuracy on the KBIT-2 Matrices Task after 2 years of study predict BSL grades at the end of 2nd year?
kbit_acc_grade_bsl_wide %>%
  ggplot(aes(x = `kbit_acc_2 years degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the KBIT-2 Matrices Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

Digit Span vs BSL Grades

Accuracy
# Create wider pivot table
dspan_acc_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, dspan_corr, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(dspan_corr, grade_bsl))

# Does Accuracy on the Digit Span Task pre-degree predict BSL grades at the end of 1st year?
dspan_acc_grade_bsl_wide %>%
  ggplot(aes(x = `dspan_corr_pre-degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the Digit Span Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 16 rows containing non-finite values (stat_smooth).
## Warning: Removed 16 rows containing missing values (geom_point).

# Does Accuracy on the Digit Span Task after 1 year of study predict BSL grades at the end of 1st year?
# removing bc no datapoints for Digit Span @ timepoint 2

# Does Accuracy on the Digit Span Task after 2 years of study predict BSL grades at the end of 1st year?
dspan_acc_grade_bsl_wide %>%
  ggplot(aes(x = `dspan_corr_2 years degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the Digit Span Task after 2 years of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Accuracy on the Digit Span Task pre-degree predict BSL grades at the end of 2nd year?
dspan_acc_grade_bsl_wide %>%
  ggplot(aes(x = `dspan_corr_pre-degree`, y = `grade_bsl_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Accuracy on the Digit Span Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 19 rows containing non-finite values (stat_smooth).
## Warning: Removed 19 rows containing missing values (geom_point).

# Does Accuracy on the Digit Span Task after 1 year of study predict BSL grades at the end of 2nd year?
# removing bc no datapoints for Digit Span @ timepoint 2

# Does Accuracy on the Digit Span Task after 2 years of study predict BSL grades at the end of 2nd year?
dspan_acc_grade_bsl_wide %>%
  ggplot(aes(x = `dspan_corr_2 years degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the Digit Span Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

Memory Span
# Create wider pivot table
dspan_mem_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, dspan_mem, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(dspan_mem, grade_bsl))

# Does Memory Span on the Digit Span Task pre-degree predict BSL grades at the end of 1st year?
dspan_mem_grade_bsl_wide %>%
  ggplot(aes(x = `dspan_mem_pre-degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Memory Span on the Digit Span Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 16 rows containing non-finite values (stat_smooth).
## Warning: Removed 16 rows containing missing values (geom_point).

# Does Memory Span on the Digit Span Task after 1 year of study predict BSL grades at the end of 1st year?
# removing bc no datapoints for Digit Span @ timepoint 2

# Does Memory Span on the Digit Span Task after 2 years of study predict BSL grades at the end of 1st year?
dspan_mem_grade_bsl_wide %>%
  ggplot(aes(x = `dspan_mem_2 years degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Memory Span on the Digit Span Task after 2 years of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Memory Span on the Digit Span Task pre-degree predict BSL grades at the end of 2nd year?
dspan_mem_grade_bsl_wide %>%
  ggplot(aes(x = `dspan_mem_pre-degree`, y = `grade_bsl_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Memory Span on the Digit Span Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 19 rows containing non-finite values (stat_smooth).
## Warning: Removed 19 rows containing missing values (geom_point).

# Does Memory Span on the Digit Span Task after 1 year of study predict BSL grades at the end of 2nd year?
# removing bc no datapoints for Digit Span @ timepoint 2

# Does Memory Span on the Digit Span Task after 2 years of study predict BSL grades at the end of 2nd year?
dspan_mem_grade_bsl_wide %>%
  ggplot(aes(x = `dspan_mem_2 years degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Memory Span on the Digit Span Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Create wider pivot table
dspan_time_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, dspan_time, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(dspan_time, grade_bsl))

# Does Time spent on the Digit Span Task pre-degree predict BSL grades at the end of 1st year?
dspan_time_grade_bsl_wide %>%
  ggplot(aes(x = `dspan_time_pre-degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Time spent on the Digit Span Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 16 rows containing non-finite values (stat_smooth).
## Warning: Removed 16 rows containing missing values (geom_point).

# Does Time spent on the Digit Span Task after 1 year of study predict BSL grades at the end of 1st year?
# removing bc no datapoints for Digit Span @ timepoint 2

# Does Time spent on the Digit Span Task after 2 years of study predict BSL grades at the end of 1st year?
dspan_time_grade_bsl_wide %>%
  ggplot(aes(x = `dspan_time_2 years degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Time spent on the Digit Span Task after 2 years of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Time spent on the Digit Span Task pre-degree predict BSL grades at the end of 2nd year?
dspan_time_grade_bsl_wide %>%
  ggplot(aes(x = `dspan_time_pre-degree`, y = `grade_bsl_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Time spent on the Digit Span Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 19 rows containing non-finite values (stat_smooth).
## Warning: Removed 19 rows containing missing values (geom_point).

# Does Time spent on the Digit Span Task after 1 year of study predict BSL grades at the end of 2nd year?
# removing bc no datapoints for Digit Span @ timepoint 2

# Does Time spent on the Digit Span Task after 2 years of study predict BSL grades at the end of 2nd year?
dspan_time_grade_bsl_wide %>%
  ggplot(aes(x = `dspan_time_2 years degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Time spent on the Digit Span Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

2D Mental Rotation vs BSL Grades

Accuracy
# Create wider pivot table
mr2d_acc_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, mr2d_acc, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(mr2d_acc, grade_bsl))

# Does Accuracy on the 2D Mental Rotation Task pre-degree predict BSL grades at the end of 1st year?
mr2d_acc_grade_bsl_wide %>%
  ggplot(aes(x = `mr2d_acc_pre-degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  labs(title = "Does Accuracy on the 2D Mental Rotation Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = "Accuracy on the 2D Mental Rotation Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Accuracy on the 2D Mental Rotation Task after 1 year of study predict BSL grades at the end of 1st year?
mr2d_acc_grade_bsl_wide %>%
  ggplot(aes(x = `mr2d_acc_1 year degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the 2D Mental Rotation Task after 1 year of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = "Accuracy on the 2D Mental Rotation Task after 1 year of study")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).

## Warning: Removed 22 rows containing missing values (geom_point).

# Does Accuracy on the 2D Mental Rotation Task after 2 years of study predict BSL grades at the end of 1st year?
mr2d_acc_grade_bsl_wide %>%
  ggplot(aes(x = `mr2d_acc_2 years degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the 2D Mental Rotation Task after 2 years of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = "Accuracy on the 2D Mental Rotation Task after 2 years of study")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).

## Warning: Removed 22 rows containing missing values (geom_point).

# Does Accuracy on the 2D Mental Rotation Task pre-degree predict BSL grades at the end of 2nd year?
mr2d_acc_grade_bsl_wide %>%
  ggplot(aes(x = `mr2d_acc_pre-degree`, y = `grade_bsl_2 years degree`)) +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Accuracy on the 2D Mental Rotation Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy on the 2D Mental Rotation Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Accuracy on the 2D Mental Rotation Task after 1 year of study predict BSL grades at the end of 2nd year?
mr2d_acc_grade_bsl_wide %>%
  ggplot(aes(x = `mr2d_acc_1 year degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the 2D Mental Rotation Task after 1 year of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy on the 2D Mental Rotation Task after 1 year of study")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).

## Warning: Removed 23 rows containing missing values (geom_point).

# Does Accuracy on the 2D Mental Rotation Task after 2 years of study predict BSL grades at the end of 2nd year?
mr2d_acc_grade_bsl_wide %>%
  ggplot(aes(x = `mr2d_acc_2 years degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the 2D Mental Rotation Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy on the 2D Mental Rotation Task after 2 years of study")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).

## Warning: Removed 23 rows containing missing values (geom_point).

###### Correlations

mr2d_acc_grade_bsl_wide %>% 
  filter(`mr2d_acc_pre-degree`!= "NA") %>% 
  filter(`grade_bsl_1 year degree` != "NA") %>% 
  summarize(AccCOR=cor(`mr2d_acc_pre-degree`, 
                       `grade_bsl_1 year degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 -0.128
mr2d_acc_grade_bsl_wide %>% 
  filter(`mr2d_acc_1 year degree`!= "NA") %>% 
  filter(`grade_bsl_1 year degree` != "NA") %>% 
  summarize(AccCOR=cor(`mr2d_acc_1 year degree`, 
                       `grade_bsl_1 year degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 -0.523
mr2d_acc_grade_bsl_wide %>% 
  filter(`mr2d_acc_2 years degree`!= "NA") %>% 
  filter(`grade_bsl_1 year degree` != "NA") %>%   summarize(AccCOR=cor(`mr2d_acc_2 years degree`, 
                       `grade_bsl_1 year degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.515
mr2d_acc_grade_bsl_wide %>% 
  filter(`mr2d_acc_pre-degree`!= "NA") %>% 
  filter(`grade_bsl_2 years degree` != "NA") %>% 
  summarize(AccCOR=cor(`mr2d_acc_pre-degree`, 
                       `grade_bsl_2 years degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 -0.136
mr2d_acc_grade_bsl_wide %>% 
  filter(`mr2d_acc_1 year degree`!= "NA") %>% 
  filter(`grade_bsl_2 years degree` != "NA") %>% 
  summarize(AccCOR=cor(`mr2d_acc_1 year degree`, 
                       `grade_bsl_2 years degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 -0.722
mr2d_acc_grade_bsl_wide %>% 
  filter(`mr2d_acc_2 years degree`!= "NA") %>% 
  filter(`grade_bsl_2 years degree` != "NA") %>%   summarize(AccCOR=cor(`mr2d_acc_2 years degree`, 
                       `grade_bsl_2 years degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.288
RT
# Create wider pivot table
mr2d_rt_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, mr2d_rt, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(mr2d_rt, grade_bsl))

# Does Reaction Time on the 2D Mental Rotation Task pre-degree predict BSL grades at the end of 1st year?
mr2d_rt_grade_bsl_wide %>%
  ggplot(aes(x = `mr2d_rt_pre-degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Reaction Time on the 2D Mental Rotation Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Reaction Time on the 2D Mental Rotation Task after 1 year of study predict BSL grades at the end of 1st year?
mr2d_rt_grade_bsl_wide %>%
  ggplot(aes(x = `mr2d_rt_1 year degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Reaction Time on the 2D Mental Rotation Task after 1 year of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).

## Warning: Removed 22 rows containing missing values (geom_point).

# Does Reaction Time on the 2D Mental Rotation Task after 2 years of study predict BSL grades at the end of 1st year?
mr2d_rt_grade_bsl_wide %>%
  ggplot(aes(x = `mr2d_rt_2 years degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Reaction Time on the 2D Mental Rotation Task after 2 years of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).

## Warning: Removed 22 rows containing missing values (geom_point).

# Does Reaction Time on the 2D Mental Rotation Task pre-degree predict BSL grades at the end of 2nd year?
mr2d_rt_grade_bsl_wide %>%
  ggplot(aes(x = `mr2d_rt_pre-degree`, y = `grade_bsl_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Reaction Time on the 2D Mental Rotation Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Reaction Time on the 2D Mental Rotation Task after 1 year of study predict BSL grades at the end of 2nd year?
mr2d_rt_grade_bsl_wide %>%
  ggplot(aes(x = `mr2d_rt_1 year degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Reaction Time on the 2D Mental Rotation Task after 1 year of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).

## Warning: Removed 23 rows containing missing values (geom_point).

# Does Reaction Time on the 2D Mental Rotation Task after 2 years of study predict BSL grades at the end of 2nd year?
mr2d_rt_grade_bsl_wide %>%
  ggplot(aes(x = `mr2d_rt_2 years degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Reaction Time on the 2D Mental Rotation Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).

## Warning: Removed 23 rows containing missing values (geom_point).

Correlations
mr2d_rt_grade_bsl_wide %>% 
  filter(`mr2d_rt_pre-degree`!= "NA") %>% 
  filter(`grade_bsl_1 year degree` != "NA") %>% 
  summarize(rtCOR=cor(`mr2d_rt_pre-degree`, 
                       `grade_bsl_1 year degree`))
## # A tibble: 1 x 1
##   rtCOR
##   <dbl>
## 1 0.550
mr2d_rt_grade_bsl_wide %>% 
  filter(`mr2d_rt_1 year degree`!= "NA") %>% 
  filter(`grade_bsl_1 year degree` != "NA") %>% 
  summarize(rtCOR=cor(`mr2d_rt_1 year degree`, 
                       `grade_bsl_1 year degree`))
## # A tibble: 1 x 1
##   rtCOR
##   <dbl>
## 1 0.473
mr2d_rt_grade_bsl_wide %>% 
  filter(`mr2d_rt_2 years degree`!= "NA") %>% 
  filter(`grade_bsl_1 year degree` != "NA") %>%   summarize(rtCOR=cor(`mr2d_rt_2 years degree`, 
                       `grade_bsl_1 year degree`))
## # A tibble: 1 x 1
##    rtCOR
##    <dbl>
## 1 -0.230
mr2d_rt_grade_bsl_wide %>% 
  filter(`mr2d_rt_pre-degree`!= "NA") %>% 
  filter(`grade_bsl_2 years degree` != "NA") %>% 
  summarize(rtCOR=cor(`mr2d_rt_pre-degree`, 
                       `grade_bsl_2 years degree`))
## # A tibble: 1 x 1
##    rtCOR
##    <dbl>
## 1 -0.100
mr2d_rt_grade_bsl_wide %>% 
  filter(`mr2d_rt_1 year degree`!= "NA") %>% 
  filter(`grade_bsl_2 years degree` != "NA") %>% 
  summarize(rtCOR=cor(`mr2d_rt_1 year degree`, 
                       `grade_bsl_2 years degree`))
## # A tibble: 1 x 1
##    rtCOR
##    <dbl>
## 1 -0.219
mr2d_rt_grade_bsl_wide %>% 
  filter(`mr2d_rt_2 years degree`!= "NA") %>% 
  filter(`grade_bsl_2 years degree` != "NA") %>%   summarize(rtCOR=cor(`mr2d_rt_2 years degree`, 
                       `grade_bsl_2 years degree`))
## # A tibble: 1 x 1
##    rtCOR
##    <dbl>
## 1 -0.326

3D Mental Rotation vs BSL Grades

Accuracy
# Create wider pivot table
mr3d_acc_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, mr3d_acc, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(mr3d_acc, grade_bsl))

# Does Accuracy on the 3D Mental Rotation Task pre-degree predict BSL grades at the end of 1st year?
mr3d_acc_grade_bsl_wide %>%
  ggplot(aes(x = `mr3d_acc_pre-degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the 3D Mental Rotation Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = "Accuracy on the 3D Mental Rotation Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 13 rows containing non-finite values (stat_smooth).
## Warning: Removed 13 rows containing missing values (geom_point).

# Does Accuracy on the 3D Mental Rotation Task after 1 year of study predict BSL grades at the end of 1st year?
# mr3d_acc_grade_bsl_wide %>%
#  ggplot(aes(x = `mr3d_acc_1 year degree`, y = `grade_bsl_1 year degree`)) +
#  geom_point() +
#  geom_smooth(method= "lm") +
#  theme_minimal()  # removing bc only 2 datapoints for 3DMR @ timepoint 2

# Does Accuracy on the 3D Mental Rotation Task after 2 years of study predict BSL grades at the end of 1st year?
mr3d_acc_grade_bsl_wide %>%
  ggplot(aes(x = `mr3d_acc_2 years degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title= "Does Accuracy on the 3D Mental Rotation Task after 2 years of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = "Accuracy on the 3D Mental Rotation Task after 2 years")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 20 rows containing non-finite values (stat_smooth).
## Warning: Removed 20 rows containing missing values (geom_point).

# Does Accuracy on the 3D Mental Rotation Task pre-degree predict BSL grades at the end of 2nd year?
mr3d_acc_grade_bsl_wide %>%
  ggplot(aes(x = `mr3d_acc_pre-degree`, y = `grade_bsl_2 years degree`)) +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  geom_point() +
  theme_minimal() +
  labs(title= "Does Accuracy on the 3D Mental Rotation Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy on the 3D Mental Rotation Task pre-degree") 
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 16 rows containing non-finite values (stat_smooth).
## Warning: Removed 16 rows containing missing values (geom_point).

# Does Accuracy on the 3D Mental Rotation Task after 1 year of study predict BSL grades at the end of 2nd year?
# mr3d_acc_grade_bsl_wide %>%
#  ggplot(aes(x = `mr3d_acc_1 year degree`, y = `grade_bsl_2 years degree`)) +
#  geom_point() +
#  geom_smooth(method= "lm") +
#  theme_minimal()  # removing bc only 2 datapoints for 3DMR @ timepoint 2

# Does Accuracy on the 3D Mental Rotation Task after 2 years of study predict BSL grades at the end of 2nd year?
mr3d_acc_grade_bsl_wide %>%
  ggplot(aes(x = `mr3d_acc_2 years degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title= "Does Accuracy on the 3D Mental Rotation Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy on the 3D Mental Rotation Task after 2 years") 
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

###### Correlations

mr3d_acc_grade_bsl_wide %>% 
  filter(`mr3d_acc_pre-degree`!= "NA") %>% 
  filter(`grade_bsl_1 year degree` != "NA") %>% 
  summarize(AccCOR=cor(`mr3d_acc_pre-degree`, 
                       `grade_bsl_1 year degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.266
mr3d_acc_grade_bsl_wide %>% 
  filter(`mr3d_acc_2 years degree`!= "NA") %>% 
  filter(`grade_bsl_1 year degree` != "NA") %>%   summarize(AccCOR=cor(`mr3d_acc_2 years degree`, 
                       `grade_bsl_1 year degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.707
mr3d_acc_grade_bsl_wide %>% 
  filter(`mr3d_acc_pre-degree`!= "NA") %>% 
  filter(`grade_bsl_2 years degree` != "NA") %>% 
  summarize(AccCOR=cor(`mr3d_acc_pre-degree`, 
                       `grade_bsl_2 years degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 -0.114
mr3d_acc_grade_bsl_wide %>% 
  filter(`mr3d_acc_2 years degree`!= "NA") %>% 
  filter(`grade_bsl_2 years degree` != "NA") %>%   summarize(AccCOR=cor(`mr3d_acc_2 years degree`, 
                       `grade_bsl_2 years degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.604
RT
# Create wider pivot table
mr3d_rt_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, mr3d_rt, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(mr3d_rt, grade_bsl))

# Does Reaction Time on the 3D Mental Rotation Task pre-degree predict BSL grades at the end of 1st year?
mr3d_rt_grade_bsl_wide %>%
  ggplot(aes(x = `mr3d_rt_pre-degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal()+
  labs(title= "Does Reaction Time on the 3D Mental Rotation Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Reaction Time on the 3D Mental Rotation Task pre-degree") 
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 13 rows containing non-finite values (stat_smooth).
## Warning: Removed 13 rows containing missing values (geom_point).

# Does Reaction Time on the 3D Mental Rotation Task after 1 year of study predict BSL grades at the end of 1st year?
# mr3d_rt_grade_bsl_wide %>%
#  ggplot(aes(x = `mr3d_rt_1 year degree`, y = `grade_bsl_1 year degree`)) +
#  geom_point() +
#  geom_smooth(method= "lm") +
#  theme_minimal()  # removing bc only 2 datapoints for 3DMR @ timepoint 2

# Does Reaction Time on the 3D Mental Rotation Task after 2 years of study predict BSL grades at the end of 1st year?
mr3d_rt_grade_bsl_wide %>%
  ggplot(aes(x = `mr3d_rt_2 years degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal()+
  labs(title= "Does Reaction Time on the 3D Mental Rotation Task after 2 years of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = "Reaction Time on the 3D Mental Rotation Task after 2 year of study") 
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 20 rows containing non-finite values (stat_smooth).
## Warning: Removed 20 rows containing missing values (geom_point).

# Does Reaction Time on the 3D Mental Rotation Task pre-degree predict BSL grades at the end of 2nd year?
mr3d_rt_grade_bsl_wide %>%
  ggplot(aes(x = `mr3d_rt_pre-degree`, y = `grade_bsl_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal()+
  labs(title= "Does Reaction Time on the 3D Mental Rotation Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Reaction Time on the 3D Mental Rotation Task pre-degree") 
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 16 rows containing non-finite values (stat_smooth).
## Warning: Removed 16 rows containing missing values (geom_point).

# Does Reaction Time on the 3D Mental Rotation Task after 1 year of study predict BSL grades at the end of 2nd year?
# mr3d_rt_grade_bsl_wide %>%
#  ggplot(aes(x = `mr3d_rt_1 year degree`, y = `grade_bsl_2 years degree`)) +
#  geom_point() +
#  geom_smooth(method= "lm") +
#  theme_minimal()   # removing bc only 2 datapoints for 3DMR @ timepoint 2

# Does Reaction Time on the 3D Mental Rotation Task after 2 years of study predict BSL grades at the end of 2nd year?
mr3d_rt_grade_bsl_wide %>%
  ggplot(aes(x = `mr3d_rt_2 years degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title= "Does Reaction Time on the 3D Mental Rotation Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Reaction Time on the 3D Mental Rotation Task after 2 years of study") 
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

###### Correlations

mr3d_rt_grade_bsl_wide %>% 
  filter(`mr3d_rt_pre-degree`!= "NA") %>% 
  filter(`grade_bsl_1 year degree` != "NA") %>% 
  summarize(rtCOR=cor(`mr3d_rt_pre-degree`, 
                       `grade_bsl_1 year degree`))
## # A tibble: 1 x 1
##    rtCOR
##    <dbl>
## 1 -0.136
mr3d_rt_grade_bsl_wide %>% 
  filter(`mr3d_rt_2 years degree`!= "NA") %>% 
  filter(`grade_bsl_1 year degree` != "NA") %>%   summarize(rtCOR=cor(`mr3d_rt_2 years degree`, 
                       `grade_bsl_1 year degree`))
## # A tibble: 1 x 1
##    rtCOR
##    <dbl>
## 1 -0.138
mr3d_rt_grade_bsl_wide %>% 
  filter(`mr3d_rt_pre-degree`!= "NA") %>% 
  filter(`grade_bsl_2 years degree` != "NA") %>% 
  summarize(rtCOR=cor(`mr3d_rt_pre-degree`, 
                       `grade_bsl_2 years degree`))
## # A tibble: 1 x 1
##    rtCOR
##    <dbl>
## 1 -0.164
mr3d_rt_grade_bsl_wide %>% 
  filter(`mr3d_rt_2 years degree`!= "NA") %>% 
  filter(`grade_bsl_2 years degree` != "NA") %>%   summarize(rtCOR=cor(`mr3d_rt_2 years degree`, 
                       `grade_bsl_2 years degree`))
## # A tibble: 1 x 1
##    rtCOR
##    <dbl>
## 1 -0.294

Barratt Impulsiveness Scale vs BSL Grades

Total Impulsiveness
# Create wider pivot table
bis_tot_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, bis_tot, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(bis_tot, grade_bsl))

# Does Total Impulsiveness on the Barratt Impulsiveness Scale after 2 years of study predict BSL grades at the end of 1st year?
bis_tot_grade_bsl_wide %>%
  filter(`bis_tot_2 years degree` != "na") %>% 
  filter(`grade_bsl_1 year degree` != "na") %>% 
  ggplot(aes(x = `bis_tot_2 years degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title= "Does Total Impulsiveness on the Barratt Impulsiveness Scale after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'

# Does Total Impulsiveness on the Barratt Impulsiveness Scale after 2 years of study predict BSL grades at the end of 2nd year?
bis_tot_grade_bsl_wide %>%
  filter(`bis_tot_2 years degree` != "na") %>% 
  filter(`grade_bsl_2 years degree` != "na") %>% 
  ggplot(aes(x = `bis_tot_2 years degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title= "Does Total Impulsiveness on the Barratt Impulsiveness Scale after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'

Not sure why geom_smooth() line does not appear in knitted output (works in .Rmd file)

Attentional Impulsiveness
# Create wider pivot table
bis_att_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, bis_att, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(bis_att, grade_bsl))

# Does Attentional Impulsiveness after 2 years predict BSL grades at the end of 1st year?
bis_att_grade_bsl_wide %>%
  filter(`bis_att_2 years degree` != "na") %>% 
  ggplot(aes(x = `bis_att_2 years degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title= "Does Attentional Impulsiveness on the Barratt Impulsiveness Scale after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'

# Does Attentional Impulsiveness after 2 years predict BSL grades at the end of 2nd year?
bis_att_grade_bsl_wide %>%
  filter(`bis_att_2 years degree` != "na") %>% 
  ggplot(aes(x = `bis_att_2 years degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title= "Does Attentional Impulsiveness on the Barratt Impulsiveness Scale after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 1 rows containing non-finite values (stat_smooth).
## Warning: Removed 1 rows containing missing values (geom_point).

Motor Impulsiveness
# Create wider pivot table
bis_nplan_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, bis_nplan, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(bis_nplan, grade_bsl))

# Does Motor Impulsiveness on the Barratt Impulsiveness Scale after 2 years predict BSL grades at the end of 1st year?
bis_nplan_grade_bsl_wide %>%
  filter(`bis_nplan_2 years degree` != "na") %>% 
  ggplot(aes(x = `bis_nplan_2 years degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title= "Does Motor Impulsiveness on the Barratt Impulsiveness Scale after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'

# Does Motor Impulsiveness on the Barratt Impulsiveness Scale after 2 years predict BSL grades at the end of 2nd year?
bis_nplan_grade_bsl_wide %>%
  filter(`bis_nplan_2 years degree` != "na") %>% 
  ggplot(aes(x = `bis_nplan_2 years degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title= "Does Motor Impulsiveness on the Barratt Impulsiveness Scale after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 1 rows containing non-finite values (stat_smooth).
## Warning: Removed 1 rows containing missing values (geom_point).

Non-Planning Impulsiveness
# Create wider pivot table
bis_mot_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, bis_mot, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(bis_mot, grade_bsl))

# Does Non-PLanning Impulsiveness on the Barratt Impulsiveness Scale after 2 years predict BSL grades at the end of 1st year?
bis_mot_grade_bsl_wide %>%
  filter(`bis_mot_2 years degree` != "NA") %>% 
  ggplot(aes(x = `bis_mot_2 years degree`, y = `grade_bsl_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title= "Does Non-Planning Impulsiveness on the Barratt Impulsiveness Scale after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'

# Does Non-PLanning Impulsiveness on the Barratt Impulsiveness Scale after 2 years predict BSL grades at the end of 2nd year?
bis_mot_grade_bsl_wide %>%
  filter(`bis_mot_2 years degree` != "na") %>% 
  ggplot(aes(x = `bis_mot_2 years degree`, y = `grade_bsl_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title= "Does Non-Planning Impulsiveness on the Barratt Impulsiveness Scale after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 1 rows containing non-finite values (stat_smooth).
## Warning: Removed 1 rows containing missing values (geom_point).

Effects of predictors on Interpreting Grades

Dual N-Back vs Interpreting Grades

Accuracy in Letter Matching
# Create wider pivot table
nback_lett_grade_terp_wide <- apt %>% 
  select(session, group, ppt, nback_lett, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(nback_lett, grade_terp))

# Does Accuracy in Letter Matching on the Dual N-Back Task pre-degree predict Interpreting Grades at the end of 1st year?
nback_lett_grade_terp_wide %>%
  ggplot(aes(x = `nback_lett_pre-degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Letter Matching on the Dual N-Back Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = "Accuracy in Letter Matching on the Dual N-Back Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Does Accuracy in Letter Matching on the Dual N-Back Task after 1 year of study predict Interpreting Grades at the end of 1st year?
nback_lett_grade_terp_wide %>%
  ggplot(aes(x = `nback_lett_1 year degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Letter Matching on the Dual N-Back Task after 1 year of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = "Accuracy in Letter Matching on the Dual N-Back Task after 1 year")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 33 rows containing non-finite values (stat_smooth).
## Warning: Removed 33 rows containing missing values (geom_point).

# Does Accuracy in Letter Matching on the Dual N-Back Task after 2 years of study predict Interpreting Grades at the end of 1st year?
nback_lett_grade_terp_wide %>%
  ggplot(aes(x = `nback_lett_2 years degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Letter Matching on the Dual N-Back Task after 2 years of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = "Accuracy in Letter Matching on the Dual N-Back Task after 2 years")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning in qt((1 - level)/2, df): NaNs produced
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning in max(ids, na.rm = TRUE): no non-missing arguments to max; returning
## -Inf

# Does Accuracy in Letter Matching on the Dual N-Back Task pre-degree predict Interpreting Grades at the end of 2nd year?
nback_lett_grade_terp_wide %>%
  ggplot(aes(x = `nback_lett_pre-degree`, y = `grade_terp_2 years degree`)) +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Accuracy in Letter Matching on the Dual N-Back Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy in Letter Matching on the Dual N-Back Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 7 rows containing non-finite values (stat_smooth).
## Warning: Removed 7 rows containing missing values (geom_point).

# Does Accuracy in Letter Matching on the Dual N-Back Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
nback_lett_grade_terp_wide %>%
  ggplot(aes(x = `nback_lett_1 year degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Letter Matching on the Dual N-Back Task after 1 year of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy in Letter Matching on the Dual N-Back Task after 1 year")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Accuracy in Letter Matching on the Dual N-Back Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
nback_lett_grade_terp_wide %>%
  ggplot(aes(x = `nback_lett_2 years degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Letter Matching on the Dual N-Back Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy in Letter Matching on the Dual N-Back Task after 2 years")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

Accuracy in Spatial Matching
# Create wider pivot table
nback_spat_grade_terp_wide <- apt %>% 
  select(session, group, ppt, nback_spat, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(nback_spat, grade_terp))

# Does Accuracy in Spatial Matching on the Dual N-Back Task pre-degree predict Interpreting Grades at the end of 1st year?
nback_spat_grade_terp_wide %>%
  ggplot(aes(x = `nback_spat_pre-degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Spatial Matching on the Dual N-Back Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = "Accuracy in Spatial Matching on the Dual N-Back Task pre-degre")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Does Accuracy in Spatial Matching on the Dual N-Back Task after 1 year of study predict Interpreting Grades at the end of 1st year?
nback_spat_grade_terp_wide %>%
  ggplot(aes(x = `nback_spat_1 year degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Spatial Matching on the Dual N-Back Task after 1 year of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = "Accuracy in Spatial Matching on the Dual N-Back Task after 1 year")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 33 rows containing non-finite values (stat_smooth).
## Warning: Removed 33 rows containing missing values (geom_point).

# Does Accuracy in Spatial Matching on the Dual N-Back Task after 2 years of study predict Interpreting Grades at the end of 1st year?
nback_spat_grade_terp_wide %>%
  ggplot(aes(x = `nback_spat_2 years degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Spatial Matching on the Dual N-Back Task after 2 years of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = "Accuracy in Spatial Matching on the Dual N-Back Task after 2 years")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning in qt((1 - level)/2, df): NaNs produced
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning in max(ids, na.rm = TRUE): no non-missing arguments to max; returning
## -Inf

# Does Accuracy in Spatial Matching on the Dual N-Back Task pre-degree predict Interpreting Grades at the end of 2nd year?
nback_spat_grade_terp_wide %>%
  ggplot(aes(x = `nback_spat_pre-degree`, y = `grade_terp_2 years degree`)) +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Accuracy in Spatial Matching on the Dual N-Back Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy in Spatial Matching on the Dual N-Back Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 7 rows containing non-finite values (stat_smooth).
## Warning: Removed 7 rows containing missing values (geom_point).

# Does Accuracy in Spatial Matching on the Dual N-Back Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
nback_spat_grade_terp_wide %>%
  ggplot(aes(x = `nback_spat_1 year degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Spatial Matching on the Dual N-Back Task after 1 year of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy in Spatial Matching on the Dual N-Back Task after 1 year")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Accuracy in Spatial Matching on the Dual N-Back Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
nback_spat_grade_terp_wide %>%
  ggplot(aes(x = `nback_spat_2 years degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Spatial Matching on the Dual N-Back Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy in Spatial Matching on the Dual N-Back Task after 2 years")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

Combined accuracy
# Create wider pivot table
nback_comb_grade_terp_wide <- apt %>% 
  select(session, group, ppt, nback_comb, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(nback_comb, grade_terp))

# Does Combined Accuracy on the Dual N-Back Task pre-degree predict Interpreting Grades at the end of 1st year?
nback_comb_grade_terp_wide %>%
  ggplot(aes(x = `nback_comb_pre-degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Combined Accuracy on the Dual N-Back Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Does Combined Accuracy on the Dual N-Back Task after 1 year of study predict Interpreting Grades at the end of 1st year?
nback_comb_grade_terp_wide %>%
  ggplot(aes(x = `nback_comb_1 year degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Combined Accuracy on the Dual N-Back Task after 1 year of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 33 rows containing non-finite values (stat_smooth).
## Warning: Removed 33 rows containing missing values (geom_point).

# Does Combined Accuracy on the Dual N-Back Task after 2 years of study predict Interpreting Grades at the end of 1st year?
nback_comb_grade_terp_wide %>%
  ggplot(aes(x = `nback_comb_2 years degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Combined Accuracy on the Dual N-Back Task after 2 years of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning in qt((1 - level)/2, df): NaNs produced
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning in max(ids, na.rm = TRUE): no non-missing arguments to max; returning
## -Inf

# Does Combined Accuracy on the Dual N-Back Task pre-degree predict Interpreting Grades at the end of 2nd year?
nback_comb_grade_terp_wide %>%
  ggplot(aes(x = `nback_comb_pre-degree`, y = `grade_terp_2 years degree`)) +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Combined Accuracy on the Dual N-Back Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 7 rows containing non-finite values (stat_smooth).
## Warning: Removed 7 rows containing missing values (geom_point).

# Does Combined Accuracy on the Dual N-Back Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
nback_comb_grade_terp_wide %>%
  ggplot(aes(x = `nback_comb_1 year degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Combined Accuracy on the Dual N-Back Task after 1 year of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Combined Accuracy on the Dual N-Back Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
nback_comb_grade_terp_wide %>%
  ggplot(aes(x = `nback_comb_2 years degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Combined Accuracy on the Dual N-Back Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

###### Correlations

nback_comb_grade_terp_wide %>% 
  filter(`nback_comb_pre-degree`!= "NA") %>% 
  filter(`grade_terp_1 year degree` != "NA") %>% 
  summarize(AccCOR=cor(`nback_comb_pre-degree`, 
                       `grade_terp_1 year degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.111
nback_comb_grade_terp_wide %>% 
  filter(`nback_comb_1 year degree`!= "NA") %>% 
  filter(`grade_terp_1 year degree` != "NA") %>% 
  summarize(AccCOR=cor(`nback_comb_1 year degree`, 
                       `grade_terp_1 year degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1     NA
nback_comb_grade_terp_wide %>% 
  filter(`nback_comb_2 years degree`!= "NA") %>% 
  filter(`grade_terp_1 year degree` != "NA") %>%   summarize(AccCOR=cor(`nback_comb_2 years degree`, 
                       `grade_terp_1 year degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1     -1
nback_comb_grade_terp_wide %>% 
  filter(`nback_comb_pre-degree`!= "NA") %>% 
  filter(`grade_terp_2 years degree` != "NA") %>% 
  summarize(AccCOR=cor(`nback_comb_pre-degree`, 
                       `grade_terp_2 years degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.328
nback_comb_grade_terp_wide %>% 
  filter(`nback_comb_1 year degree`!= "NA") %>% 
  filter(`grade_terp_2 years degree` != "NA") %>% 
  summarize(AccCOR=cor(`nback_comb_1 year degree`, 
                       `grade_terp_2 years degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 -0.526
nback_comb_grade_terp_wide %>% 
  filter(`nback_comb_2 years degree`!= "NA") %>% 
  filter(`grade_terp_2 years degree` != "NA") %>%   summarize(AccCOR=cor(`nback_comb_2 years degree`, 
                       `grade_terp_2 years degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 0.0265

Corsi Blocks vs Interpreting Grades

Block Span
# Create wider pivot table
corsi_bspan_grade_terp_wide <- apt %>% 
  select(session, group, ppt, corsi_bspan, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(corsi_bspan, grade_terp))

# Does Block Span on the Corsi Blocks Task pre-degree predict Interpreting Grades at the end of 1st year?
corsi_bspan_grade_terp_wide %>%
  ggplot(aes(x = `corsi_bspan_pre-degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Block Span on the Corsi Blocks Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Does Block Span on the Corsi Blocks Task after 1 year of study predict Interpreting Grades at the end of 1st year?
corsi_bspan_grade_terp_wide %>%
  ggplot(aes(x = `corsi_bspan_1 year degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Block Span on the Corsi Blocks Task after 1 year of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 33 rows containing non-finite values (stat_smooth).
## Warning: Removed 33 rows containing missing values (geom_point).

# Does Block Span on the Corsi Blocks Task after 2 years of study predict Interpreting Grades at the end of 1st year?
corsi_bspan_grade_terp_wide %>%
  ggplot(aes(x = `corsi_bspan_2 years degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Block Span on the Corsi Blocks Task after 2 years of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning in qt((1 - level)/2, df): NaNs produced
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning in max(ids, na.rm = TRUE): no non-missing arguments to max; returning
## -Inf

# Does Block Span on the Corsi Blocks Task pre-degree predict Interpreting Grades at the end of 2nd year?
corsi_bspan_grade_terp_wide %>%
  ggplot(aes(x = `corsi_bspan_pre-degree`, y = `grade_terp_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Block Span on the Corsi Blocks Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 7 rows containing non-finite values (stat_smooth).
## Warning: Removed 7 rows containing missing values (geom_point).

# Does Block Span on the Corsi Blocks Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
corsi_bspan_grade_terp_wide %>%
  ggplot(aes(x = `corsi_bspan_1 year degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Block Span on the Corsi Blocks Task after 1 year of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

# Does Block Span on the Corsi Blocks Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
corsi_bspan_grade_terp_wide %>%
  ggplot(aes(x = `corsi_bspan_2 years degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Block Span on the Corsi Blocks Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

Raw Score
# Create wider pivot table
corsi_score_grade_terp_wide <- apt %>% 
  select(session, group, ppt, corsi_score, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(corsi_score, grade_terp))

# Does Raw Score on the Corsi Blocks Task pre-degree predict Interpreting Grades at the end of 1st year?
corsi_score_grade_terp_wide %>%
  ggplot(aes(x = `corsi_score_pre-degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the Corsi Blocks Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Does Raw Score on the Corsi Blocks Task after 1 year of study predict Interpreting Grades at the end of 1st year?
corsi_score_grade_terp_wide %>%
  ggplot(aes(x = `corsi_score_1 year degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the Corsi Blocks Task after 1 year of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 33 rows containing non-finite values (stat_smooth).
## Warning: Removed 33 rows containing missing values (geom_point).

# Does Raw Score on the Corsi Blocks Task after 2 years of study predict Interpreting Grades at the end of 1st year?
corsi_score_grade_terp_wide %>%
  ggplot(aes(x = `corsi_score_2 years degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the Corsi Blocks Task after 2 years of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning in qt((1 - level)/2, df): NaNs produced
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning in max(ids, na.rm = TRUE): no non-missing arguments to max; returning
## -Inf

# Does Raw Score on the Corsi Blocks Task pre-degree predict Interpreting Grades at the end of 2nd year?
corsi_score_grade_terp_wide %>%
  ggplot(aes(x = `corsi_score_pre-degree`, y = `grade_terp_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Raw Score on the Corsi Blocks Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 7 rows containing non-finite values (stat_smooth).
## Warning: Removed 7 rows containing missing values (geom_point).

# Does Raw Score on the Corsi Blocks Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
corsi_score_grade_terp_wide %>%
  ggplot(aes(x = `corsi_score_1 year degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the Corsi Blocks Task after 1 year of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

# Does Raw Score on the Corsi Blocks Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
corsi_score_grade_terp_wide %>%
  ggplot(aes(x = `corsi_score_2 years degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the Corsi Blocks Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

Correct Responses
# Create wider pivot table
corsi_corr_grade_terp_wide <- apt %>% 
  select(session, group, ppt, corsi_corr, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(corsi_corr, grade_terp))

# Do Correct Responses on the Corsi Blocks Task pre-degree predict Interpreting Grades at the end of 1st year?
corsi_corr_grade_terp_wide %>%
  ggplot(aes(x = `corsi_corr_pre-degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Do Correct Responses on the Corsi Blocks Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Do Correct Responses on the Corsi Blocks Task after 1 year of study predict Interpreting Grades at the end of 1st year?
corsi_corr_grade_terp_wide %>%
  ggplot(aes(x = `corsi_corr_1 year degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Do Correct Responses on the Corsi Blocks Task after 1 year of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 33 rows containing non-finite values (stat_smooth).
## Warning: Removed 33 rows containing missing values (geom_point).

# Do Correct Responses on the Corsi Blocks Task after 2 years of study predict Interpreting Grades at the end of 1st year?
corsi_corr_grade_terp_wide %>%
  ggplot(aes(x = `corsi_corr_2 years degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Do Correct Responses on the Corsi Blocks Task after 2 years of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning in qt((1 - level)/2, df): NaNs produced
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning in max(ids, na.rm = TRUE): no non-missing arguments to max; returning
## -Inf

# Do Correct Responses on the Corsi Blocks Task pre-degree predict Interpreting Grades at the end of 2nd year?
corsi_corr_grade_terp_wide %>%
  ggplot(aes(x = `corsi_corr_pre-degree`, y = `grade_terp_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Do Correct Responses on the Corsi Blocks Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 7 rows containing non-finite values (stat_smooth).
## Warning: Removed 7 rows containing missing values (geom_point).

# Do Correct Responses on the Corsi Blocks Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
corsi_corr_grade_terp_wide %>%
  ggplot(aes(x = `corsi_corr_1 year degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Do Correct Responses on the Corsi Blocks Task after 1 year of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

# Do Correct Responses on the Corsi Blocks Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
corsi_corr_grade_terp_wide %>%
  ggplot(aes(x = `corsi_corr_2 years degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Do Correct Responses on the Corsi Blocks Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

Memory Span
# Create wider pivot table
corsi_mspan_grade_terp_wide <- apt %>% 
  select(session, group, ppt, corsi_mspan, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(corsi_mspan, grade_terp))

# Does Memory Span on the Corsi Blocks Task pre-degree predict Interpreting Grades at the end of 1st year?
corsi_mspan_grade_terp_wide %>%
  ggplot(aes(x = `corsi_mspan_pre-degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Memory Span on the Corsi Blocks Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Does Memory Span on the Corsi Blocks Task after 1 year of study predict Interpreting Grades at the end of 1st year?
corsi_mspan_grade_terp_wide %>%
  ggplot(aes(x = `corsi_mspan_1 year degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Memory Span on the Corsi Blocks Task after 1 year of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 33 rows containing non-finite values (stat_smooth).
## Warning: Removed 33 rows containing missing values (geom_point).

# Does Memory Span on the Corsi Blocks Task after 2 years of study predict Interpreting Grades at the end of 1st year?
corsi_mspan_grade_terp_wide %>%
  ggplot(aes(x = `corsi_mspan_2 years degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Memory Span on the Corsi Blocks Task after 2 years of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning in qt((1 - level)/2, df): NaNs produced
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning in max(ids, na.rm = TRUE): no non-missing arguments to max; returning
## -Inf

# Does Memory Span on the Corsi Blocks Task pre-degree predict Interpreting Grades at the end of 2nd year?
corsi_mspan_grade_terp_wide %>%
  ggplot(aes(x = `corsi_mspan_pre-degree`, y = `grade_terp_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Memory Span on the Corsi Blocks Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 7 rows containing non-finite values (stat_smooth).
## Warning: Removed 7 rows containing missing values (geom_point).

# Does Memory Span on the Corsi Blocks Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
corsi_mspan_grade_terp_wide %>%
  ggplot(aes(x = `corsi_mspan_1 year degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Memory Span on the Corsi Blocks Task after 1 year of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

# Does Memory Span on the Corsi Blocks Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
corsi_mspan_grade_terp_wide %>%
  ggplot(aes(x = `corsi_mspan_2 years degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Memory Span on the Corsi Blocks Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

Kirklees Sentence Reading vs Interpreting Grades

Ceiling Score
# Create wider pivot table
kirk_ceil_grade_terp_wide <- apt %>% 
  select(session, group, ppt, kirk_ceil, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(kirk_ceil, grade_terp))

# Does Ceiling Score on the Kirklees Sentence Reading Task pre-degree predict Interpreting Grades at the end of 1st year?
kirk_ceil_grade_terp_wide %>%
  ggplot(aes(x = `kirk_ceil_pre-degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Ceiling Score on the Kirklees Sentence Reading Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Does Ceiling Score on the Kirklees Sentence Reading Task after 1 year of study predict Interpreting Grades at the end of 1st year?
kirk_ceil_grade_terp_wide %>%
  ggplot(aes(x = `kirk_ceil_1 year degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Ceiling Score on the Kirklees Sentence Reading Task after 1 year of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 33 rows containing non-finite values (stat_smooth).
## Warning: Removed 33 rows containing missing values (geom_point).

# Does Ceiling Score on the Kirklees Sentence Reading Task after 2 years of study predict Interpreting Grades at the end of 1st year?
kirk_ceil_grade_terp_wide %>%
  ggplot(aes(x = `kirk_ceil_2 years degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Ceiling Score on the Kirklees Sentence Reading Task after 2 years of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 30 rows containing non-finite values (stat_smooth).
## Warning: Removed 30 rows containing missing values (geom_point).

# Does Ceiling Score on the Kirklees Sentence Reading Task pre-degree predict Interpreting Grades at the end of 2nd year?
kirk_ceil_grade_terp_wide %>%
  ggplot(aes(x = `kirk_ceil_pre-degree`, y = `grade_terp_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Ceiling Score on the Kirklees Sentence Reading Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 7 rows containing non-finite values (stat_smooth).
## Warning: Removed 7 rows containing missing values (geom_point).

# Does Ceiling Score on the Kirklees Sentence Reading Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
kirk_ceil_grade_terp_wide %>%
  ggplot(aes(x = `kirk_ceil_1 year degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Ceiling Score on the Kirklees Sentence Reading Task after 1 year of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Ceiling Score on the Kirklees Sentence Reading Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
kirk_ceil_grade_terp_wide %>%
  ggplot(aes(x = `kirk_ceil_2 years degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Ceiling Score on the Kirklees Sentence Reading Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

Raw Score
# Create wider pivot table
kirk_raw_grade_terp_wide <- apt %>% 
  select(session, group, ppt, kirk_raw, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(kirk_raw, grade_terp))

# Does Raw Score on the Kirklees Sentence Reading Task pre-degree predict Interpreting Grades at the end of 1st year?
kirk_raw_grade_terp_wide %>%
  ggplot(aes(x = `kirk_raw_pre-degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the Kirklees Sentence Reading Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Does Raw Score on the Kirklees Sentence Reading Task after 1 year of study predict Interpreting Grades at the end of 1st year?
kirk_raw_grade_terp_wide %>%
  ggplot(aes(x = `kirk_raw_1 year degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the Kirklees Sentence Reading Task after 1 year of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 33 rows containing non-finite values (stat_smooth).
## Warning: Removed 33 rows containing missing values (geom_point).

# Does Raw Score on the Kirklees Sentence Reading Task after 2 years of study predict Interpreting Grades at the end of 1st year?
kirk_raw_grade_terp_wide %>%
  ggplot(aes(x = `kirk_raw_2 years degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the Kirklees Sentence Reading Task after 2 years of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 30 rows containing non-finite values (stat_smooth).
## Warning: Removed 30 rows containing missing values (geom_point).

# Does Raw Score on the Kirklees Sentence Reading Task pre-degree predict Interpreting Grades at the end of 2nd year?
kirk_raw_grade_terp_wide %>%
  ggplot(aes(x = `kirk_raw_pre-degree`, y = `grade_terp_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Raw Score on the Kirklees Sentence Reading Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 7 rows containing non-finite values (stat_smooth).
## Warning: Removed 7 rows containing missing values (geom_point).

# Does Raw Score on the Kirklees Sentence Reading Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
kirk_raw_grade_terp_wide %>%
  ggplot(aes(x = `kirk_raw_1 year degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the Kirklees Sentence Reading Task after 1 year of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Raw Score on the Kirklees Sentence Reading Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
kirk_raw_grade_terp_wide %>%
  ggplot(aes(x = `kirk_raw_2 years degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the Kirklees Sentence Reading Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

Accuracy
# Create wider pivot table
kirk_acc_grade_terp_wide <- apt %>% 
  select(session, group, ppt, kirk_acc, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(kirk_acc, grade_terp))

# Does Accuracy on the Kirklees Sentence Reading Task pre-degree predict Interpreting Grades at the end of 1st year?
kirk_acc_grade_terp_wide %>%
  ggplot(aes(x = `kirk_acc_pre-degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the Kirklees Sentence Reading Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = "Accuracy on the Kirklees Sentence Reading Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Does Accuracy on the Kirklees Sentence Reading Task after 1 year of study predict Interpreting Grades at the end of 1st year?
kirk_acc_grade_terp_wide %>%
  ggplot(aes(x = `kirk_acc_1 year degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the Kirklees Sentence Reading Task after 1 year of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = "Accuracy on the Kirklees Sentence Reading Task after 1 year")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 33 rows containing non-finite values (stat_smooth).
## Warning: Removed 33 rows containing missing values (geom_point).

# Does Accuracy on the Kirklees Sentence Reading Task after 2 years of study predict Interpreting Grades at the end of 1st year?
kirk_acc_grade_terp_wide %>%
  ggplot(aes(x = `kirk_acc_2 years degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the Kirklees Sentence Reading Task after 2 years of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = "Accuracy on the Kirklees Sentence Reading Task after 2 years")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 30 rows containing non-finite values (stat_smooth).
## Warning: Removed 30 rows containing missing values (geom_point).

# Does Accuracy on the Kirklees Sentence Reading Task pre-degree predict Interpreting Grades at the end of 2nd year?
kirk_acc_grade_terp_wide %>%
  ggplot(aes(x = `kirk_acc_pre-degree`, y = `grade_terp_2 years degree`)) +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Accuracy on the Kirklees Sentence Reading Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy on the Kirklees Sentence Reading Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 7 rows containing non-finite values (stat_smooth).
## Warning: Removed 7 rows containing missing values (geom_point).

# Does Accuracy on the Kirklees Sentence Reading Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
kirk_acc_grade_terp_wide %>%
  ggplot(aes(x = `kirk_acc_1 year degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the Kirklees Sentence Reading Task after 1 year of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy on the Kirklees Sentence Reading Task after 1 year")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Accuracy on the Kirklees Sentence Reading Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
kirk_acc_grade_terp_wide %>%
  ggplot(aes(x = `kirk_acc_2 years degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the Kirklees Sentence Reading Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy on the Kirklees Sentence Reading Task after 2 years")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

Correlations
kirk_acc_grade_terp_wide %>% 
  filter(`kirk_acc_pre-degree`!= "NA") %>% 
  filter(`grade_terp_1 year degree` != "NA") %>% 
  summarize(AccCOR=cor(`kirk_acc_pre-degree`, 
                       `grade_terp_1 year degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.400
kirk_acc_grade_terp_wide %>% 
  filter(`kirk_acc_1 year degree`!= "NA") %>% 
  filter(`grade_terp_1 year degree` != "NA") %>% 
  summarize(AccCOR=cor(`kirk_acc_1 year degree`, 
                       `grade_terp_1 year degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1     NA
kirk_acc_grade_terp_wide %>% 
  filter(`kirk_acc_2 years degree`!= "NA") %>% 
  filter(`grade_terp_1 year degree` != "NA") %>%
  summarize(AccCOR=cor(`kirk_acc_2 years degree`, 
                       `grade_terp_1 year degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 -0.637
kirk_acc_grade_terp_wide %>% 
  filter(`kirk_acc_pre-degree`!= "NA") %>% 
  filter(`grade_terp_2 years degree` != "NA") %>% 
  summarize(AccCOR=cor(`kirk_acc_pre-degree`, 
                       `grade_terp_2 years degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.305
kirk_acc_grade_terp_wide %>% 
  filter(`kirk_acc_1 year degree`!= "NA") %>% 
  filter(`grade_terp_2 years degree` != "NA") %>% 
  summarize(AccCOR=cor(`kirk_acc_1 year degree`, 
                       `grade_terp_2 years degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.225
kirk_acc_grade_terp_wide %>% 
  filter(`kirk_acc_2 years degree`!= "NA") %>% 
  filter(`grade_terp_2 years degree` != "NA") %>%
  summarize(AccCOR=cor(`kirk_acc_2 years degree`, 
                       `grade_terp_2 years degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.214

KBIT-2 Matrices vs Interpreting Grades

Ceiling Score
# Create wider pivot table
kbit_ceil_grade_terp_wide <- apt %>% 
  select(session, group, ppt, kbit_ceil, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(kbit_ceil, grade_terp))

# Does Ceiling Score on the KBIT-2 Matrices Task pre-degree predict Interpreting Grades at the end of 1st year?
kbit_ceil_grade_terp_wide %>%
  ggplot(aes(x = `kbit_ceil_pre-degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Ceiling Score on the KBIT-2 Matrices Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Does Ceiling Score on the KBIT-2 Matrices Task after 1 year of study predict Interpreting Grades at the end of 1st year?
kbit_ceil_grade_terp_wide %>%
  ggplot(aes(x = `kbit_ceil_1 year degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Ceiling Score on the KBIT-2 Matrices Task after 1 year of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 33 rows containing non-finite values (stat_smooth).
## Warning: Removed 33 rows containing missing values (geom_point).

# Does Ceiling Score on the KBIT-2 Matrices Task after 2 years of study predict Interpreting Grades at the end of 1st year?
kbit_ceil_grade_terp_wide %>%
  ggplot(aes(x = `kbit_ceil_2 years degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Ceiling Score on the KBIT-2 Matrices Task after 2 years of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 30 rows containing non-finite values (stat_smooth).
## Warning: Removed 30 rows containing missing values (geom_point).

# Does Ceiling Score on the KBIT-2 Matrices Task pre-degree predict Interpreting Grades at the end of 2nd year?
kbit_ceil_grade_terp_wide %>%
  ggplot(aes(x = `kbit_ceil_pre-degree`, y = `grade_terp_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Ceiling Score on the KBIT-2 Matrices Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 7 rows containing non-finite values (stat_smooth).
## Warning: Removed 7 rows containing missing values (geom_point).

# Does Ceiling Score on the KBIT-2 Matrices Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
kbit_ceil_grade_terp_wide %>%
  ggplot(aes(x = `kbit_ceil_1 year degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Ceiling Score on the KBIT-2 Matrices Task after 1 year of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Ceiling Score on the KBIT-2 Matrices Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
kbit_ceil_grade_terp_wide %>%
  ggplot(aes(x = `kbit_ceil_2 years degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Ceiling Score on the KBIT-2 Matrices Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

Raw Score
# Create wider pivot table
kbit_raw_grade_terp_wide <- apt %>% 
  select(session, group, ppt, kbit_raw, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(kbit_raw, grade_terp))

# Does Raw Score on the KBIT-2 Matrices Task pre-degree predict Interpreting Grades at the end of 1st year?
kbit_raw_grade_terp_wide %>%
  ggplot(aes(x = `kbit_raw_pre-degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the KBIT-2 Matrices Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Does Raw Score on the KBIT-2 Matrices Task after 1 year of study predict Interpreting Grades at the end of 1st year?
kbit_raw_grade_terp_wide %>%
  ggplot(aes(x = `kbit_raw_1 year degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the KBIT-2 Matrices Task after 1 year of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 33 rows containing non-finite values (stat_smooth).
## Warning: Removed 33 rows containing missing values (geom_point).

# Does Raw Score on the KBIT-2 Matrices Task after 2 years of study predict Interpreting Grades at the end of 1st year?
kbit_raw_grade_terp_wide %>%
  ggplot(aes(x = `kbit_raw_2 years degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the KBIT-2 Matrices Task after 2 years of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 30 rows containing non-finite values (stat_smooth).
## Warning: Removed 30 rows containing missing values (geom_point).

# Does Raw Score on the KBIT-2 Matrices Task pre-degree predict Interpreting Grades at the end of 2nd year?
kbit_raw_grade_terp_wide %>%
  ggplot(aes(x = `kbit_raw_pre-degree`, y = `grade_terp_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Raw Score on the KBIT-2 Matrices Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 7 rows containing non-finite values (stat_smooth).
## Warning: Removed 7 rows containing missing values (geom_point).

# Does Raw Score on the KBIT-2 Matrices Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
kbit_raw_grade_terp_wide %>%
  ggplot(aes(x = `kbit_raw_1 year degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the KBIT-2 Matrices Task after 1 year of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Raw Score on the KBIT-2 Matrices Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
kbit_raw_grade_terp_wide %>%
  ggplot(aes(x = `kbit_raw_2 years degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Raw Score on the KBIT-2 Matrices Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

Accuracy
# Create wider pivot table
kbit_acc_grade_terp_wide <- apt %>% 
  select(session, group, ppt, kbit_acc, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(kbit_acc, grade_terp))

# Does Accuracy on the KBIT-2 Matrices Task pre-degree predict Interpreting Grades at the end of 1st year?
kbit_acc_grade_terp_wide %>%
  ggplot(aes(x = `kbit_acc_pre-degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the KBIT-2 Matrices Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Does Accuracy on the KBIT-2 Matrices Task after 1 year of study predict Interpreting Grades at the end of 1st year?
kbit_acc_grade_terp_wide %>%
  ggplot(aes(x = `kbit_acc_1 year degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the KBIT-2 Matrices Task after 1 year of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 33 rows containing non-finite values (stat_smooth).
## Warning: Removed 33 rows containing missing values (geom_point).

# Does Accuracy on the KBIT-2 Matrices Task after 2 years of study predict Interpreting Grades at the end of 1st year?
kbit_acc_grade_terp_wide %>%
  ggplot(aes(x = `kbit_acc_2 years degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the KBIT-2 Matrices Task after 2 years of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 30 rows containing non-finite values (stat_smooth).
## Warning: Removed 30 rows containing missing values (geom_point).

# Does Accuracy on the KBIT-2 Matrices Task pre-degree predict Interpreting Grades at the end of 2nd year?
kbit_acc_grade_terp_wide %>%
  ggplot(aes(x = `kbit_acc_pre-degree`, y = `grade_terp_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Accuracy on the KBIT-2 Matrices Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 7 rows containing non-finite values (stat_smooth).
## Warning: Removed 7 rows containing missing values (geom_point).

# Does Accuracy on the KBIT-2 Matrices Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
kbit_acc_grade_terp_wide %>%
  ggplot(aes(x = `kbit_acc_1 year degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the KBIT-2 Matrices Task after 1 year of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Accuracy on the KBIT-2 Matrices Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
kbit_acc_grade_terp_wide %>%
  ggplot(aes(x = `kbit_acc_2 years degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the KBIT-2 Matrices Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

Digit Span vs Interpreting Grades

Accuracy
# Create wider pivot table
dspan_acc_grade_terp_wide <- apt %>% 
  select(session, group, ppt, dspan_corr, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(dspan_corr, grade_terp))

# Does Accuracy on the Digit Span Task pre-degree predict Interpreting Grades at the end of 1st year?
dspan_acc_grade_terp_wide %>%
  ggplot(aes(x = `dspan_corr_pre-degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the Digit Span Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Does Accuracy on the Digit Span Task after 1 year of study predict Interpreting Grades at the end of 1st year?
# removing bc no datapoints for Digit Span @ timepoint 2

# Does Accuracy on the Digit Span Task after 2 years of study predict Interpreting Grades at the end of 1st year?
dspan_acc_grade_terp_wide %>%
  ggplot(aes(x = `dspan_corr_2 years degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the Digit Span Task after 2 years of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning in qt((1 - level)/2, df): NaNs produced
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning in max(ids, na.rm = TRUE): no non-missing arguments to max; returning
## -Inf

# Does Accuracy on the Digit Span Task pre-degree predict Interpreting Grades at the end of 2nd year?
dspan_acc_grade_terp_wide %>%
  ggplot(aes(x = `dspan_corr_pre-degree`, y = `grade_terp_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Accuracy on the Digit Span Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 20 rows containing non-finite values (stat_smooth).
## Warning: Removed 20 rows containing missing values (geom_point).

# Does Accuracy on the Digit Span Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
# removing bc no datapoints for Digit Span @ timepoint 2

# Does Accuracy on the Digit Span Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
dspan_acc_grade_terp_wide %>%
  ggplot(aes(x = `dspan_corr_2 years degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the Digit Span Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

Correlations
dspan_acc_grade_terp_wide %>% 
  filter(`dspan_corr_pre-degree`!= "NA") %>% 
  filter(`grade_terp_1 year degree` != "NA") %>% 
  summarize(AccCOR=cor(`dspan_corr_pre-degree`, 
                       `grade_terp_1 year degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.124
dspan_acc_grade_terp_wide %>% 
  filter(`dspan_corr_2 years degree`!= "NA") %>% 
  filter(`grade_terp_1 year degree` != "NA") %>%
  summarize(AccCOR=cor(`dspan_corr_2 years degree`, 
                       `grade_terp_1 year degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1     -1
dspan_acc_grade_terp_wide %>% 
  filter(`dspan_corr_pre-degree`!= "NA") %>% 
  filter(`grade_terp_2 years degree` != "NA") %>% 
  summarize(AccCOR=cor(`dspan_corr_pre-degree`, 
                       `grade_terp_2 years degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.581
dspan_acc_grade_terp_wide %>% 
  filter(`dspan_corr_2 years degree`!= "NA") %>% 
  filter(`grade_terp_2 years degree` != "NA") %>%
  summarize(AccCOR=cor(`dspan_corr_2 years degree`, 
                       `grade_terp_2 years degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 -0.266
Memory Span
# Create wider pivot table
dspan_mem_grade_terp_wide <- apt %>% 
  select(session, group, ppt, dspan_mem, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(dspan_mem, grade_terp))

# Does Memory Span on the Digit Span Task pre-degree predict Interpreting Grades at the end of 1st year?
dspan_mem_grade_terp_wide %>%
  ggplot(aes(x = `dspan_mem_pre-degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Memory Span on the Digit Span Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Does Memory Span on the Digit Span Task after 1 year of study predict Interpreting Grades at the end of 1st year?
# removing bc no datapoints for Digit Span @ timepoint 2

# Does Memory Span on the Digit Span Task after 2 years of study predict Interpreting Grades at the end of 1st year?
dspan_mem_grade_terp_wide %>%
  ggplot(aes(x = `dspan_mem_2 years degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Memory Span on the Digit Span Task after 2 years of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning in qt((1 - level)/2, df): NaNs produced
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning in max(ids, na.rm = TRUE): no non-missing arguments to max; returning
## -Inf

# Does Memory Span on the Digit Span Task pre-degree predict Interpreting Grades at the end of 2nd year?
dspan_mem_grade_terp_wide %>%
  ggplot(aes(x = `dspan_mem_pre-degree`, y = `grade_terp_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Memory Span on the Digit Span Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 20 rows containing non-finite values (stat_smooth).
## Warning: Removed 20 rows containing missing values (geom_point).

# Does Memory Span on the Digit Span Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
# removing bc no datapoints for Digit Span @ timepoint 2

# Does Memory Span on the Digit Span Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
dspan_mem_grade_terp_wide %>%
  ggplot(aes(x = `dspan_mem_2 years degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Memory Span on the Digit Span Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Create wider pivot table
dspan_time_grade_terp_wide <- apt %>% 
  select(session, group, ppt, dspan_time, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(dspan_time, grade_terp))

# Does Time spent on the Digit Span Task pre-degree predict Interpreting Grades at the end of 1st year?
dspan_time_grade_terp_wide %>%
  ggplot(aes(x = `dspan_time_pre-degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Time spent on the Digit Span Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Does Time spent on the Digit Span Task after 1 year of study predict Interpreting Grades at the end of 1st year?
# removing bc no datapoints for Digit Span @ timepoint 2

# Does Time spent on the Digit Span Task after 2 years of study predict Interpreting Grades at the end of 1st year?
dspan_time_grade_terp_wide %>%
  ggplot(aes(x = `dspan_time_2 years degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Time spent on the Digit Span Task after 2 years of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning in qt((1 - level)/2, df): NaNs produced
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning in max(ids, na.rm = TRUE): no non-missing arguments to max; returning
## -Inf

# Does Time spent on the Digit Span Task pre-degree predict Interpreting Grades at the end of 2nd year?
dspan_time_grade_terp_wide %>%
  ggplot(aes(x = `dspan_time_pre-degree`, y = `grade_terp_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Time spent on the Digit Span Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 20 rows containing non-finite values (stat_smooth).
## Warning: Removed 20 rows containing missing values (geom_point).

# Does Time spent on the Digit Span Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
# removing bc no datapoints for Digit Span @ timepoint 2

# Does Time spent on the Digit Span Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
dspan_time_grade_terp_wide %>%
  ggplot(aes(x = `dspan_time_2 years degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Time spent on the Digit Span Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

2D Mental Rotation vs Interpreting Grades

Accuracy
# Create wider pivot table
mr2d_acc_grade_terp_wide <- apt %>% 
  select(session, group, ppt, mr2d_acc, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(mr2d_acc, grade_terp))

# Does Accuracy on the 2D Mental Rotation Task pre-degree predict Interpreting Grades at the end of 1st year?
mr2d_acc_grade_terp_wide %>%
  ggplot(aes(x = `mr2d_acc_pre-degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  labs(title = "Does Accuracy on the 2D Mental Rotation Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = "Accuracy on the 2D Mental Rotation Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 33 rows containing non-finite values (stat_smooth).
## Warning: Removed 33 rows containing missing values (geom_point).

# Does Accuracy on the 2D Mental Rotation Task after 1 year of study predict Interpreting Grades at the end of 1st year?
mr2d_acc_grade_terp_wide %>%
  ggplot(aes(x = `mr2d_acc_1 year degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the 2D Mental Rotation Task after 1 year of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = "Accuracy on the 2D Mental Rotation Task after 1 year of study")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 33 rows containing non-finite values (stat_smooth).

## Warning: Removed 33 rows containing missing values (geom_point).

# Does Accuracy on the 2D Mental Rotation Task after 2 years of study predict Interpreting Grades at the end of 1st year?
mr2d_acc_grade_terp_wide %>%
  ggplot(aes(x = `mr2d_acc_2 years degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the 2D Mental Rotation Task after 2 years of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = "Accuracy on the 2D Mental Rotation Task after 2 years of study")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning in qt((1 - level)/2, df): NaNs produced
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning in max(ids, na.rm = TRUE): no non-missing arguments to max; returning
## -Inf

# Does Accuracy on the 2D Mental Rotation Task pre-degree predict Interpreting Grades at the end of 2nd year?
mr2d_acc_grade_terp_wide %>%
  ggplot(aes(x = `mr2d_acc_pre-degree`, y = `grade_terp_2 years degree`)) +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Accuracy on the 2D Mental Rotation Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy on the 2D Mental Rotation Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Accuracy on the 2D Mental Rotation Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
mr2d_acc_grade_terp_wide %>%
  ggplot(aes(x = `mr2d_acc_1 year degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the 2D Mental Rotation Task after 1 year of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy on the 2D Mental Rotation Task after 1 year of study")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).

## Warning: Removed 23 rows containing missing values (geom_point).

# Does Accuracy on the 2D Mental Rotation Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
mr2d_acc_grade_terp_wide %>%
  ggplot(aes(x = `mr2d_acc_2 years degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the 2D Mental Rotation Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy on the 2D Mental Rotation Task after 2 years of study")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).

## Warning: Removed 23 rows containing missing values (geom_point).

###### Correlations

mr2d_acc_grade_terp_wide %>% 
  filter(`mr2d_acc_pre-degree`!= "NA") %>% 
  filter(`grade_terp_1 year degree` != "NA") %>% 
  summarize(AccCOR=cor(`mr2d_acc_pre-degree`, 
                       `grade_terp_1 year degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1     NA
mr2d_acc_grade_terp_wide %>% 
  filter(`mr2d_acc_1 year degree`!= "NA") %>% 
  filter(`grade_terp_1 year degree` != "NA") %>% 
  summarize(AccCOR=cor(`mr2d_acc_1 year degree`, 
                       `grade_terp_1 year degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1     NA
mr2d_acc_grade_terp_wide %>% 
  filter(`mr2d_acc_2 years degree`!= "NA") %>% 
  filter(`grade_terp_1 year degree` != "NA") %>%   summarize(AccCOR=cor(`mr2d_acc_2 years degree`, 
                       `grade_terp_1 year degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1      1
mr2d_acc_grade_terp_wide %>% 
  filter(`mr2d_acc_pre-degree`!= "NA") %>% 
  filter(`grade_terp_2 years degree` != "NA") %>% 
  summarize(AccCOR=cor(`mr2d_acc_pre-degree`, 
                       `grade_terp_2 years degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 0.0795
mr2d_acc_grade_terp_wide %>% 
  filter(`mr2d_acc_1 year degree`!= "NA") %>% 
  filter(`grade_terp_2 years degree` != "NA") %>% 
  summarize(AccCOR=cor(`mr2d_acc_1 year degree`, 
                       `grade_terp_2 years degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 -0.614
mr2d_acc_grade_terp_wide %>% 
  filter(`mr2d_acc_2 years degree`!= "NA") %>% 
  filter(`grade_terp_2 years degree` != "NA") %>%   summarize(AccCOR=cor(`mr2d_acc_2 years degree`, 
                       `grade_terp_2 years degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.288
RT
# Create wider pivot table
mr2d_rt_grade_terp_wide <- apt %>% 
  select(session, group, ppt, mr2d_rt, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(mr2d_rt, grade_terp))

# Does Reaction Time on the 2D Mental Rotation Task pre-degree predict Interpreting Grades at the end of 1st year?
mr2d_rt_grade_terp_wide %>%
  ggplot(aes(x = `mr2d_rt_pre-degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Reaction Time on the 2D Mental Rotation Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 33 rows containing non-finite values (stat_smooth).
## Warning: Removed 33 rows containing missing values (geom_point).

# Does Reaction Time on the 2D Mental Rotation Task after 1 year of study predict Interpreting Grades at the end of 1st year?
mr2d_rt_grade_terp_wide %>%
  ggplot(aes(x = `mr2d_rt_1 year degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Reaction Time on the 2D Mental Rotation Task after 1 year of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 33 rows containing non-finite values (stat_smooth).

## Warning: Removed 33 rows containing missing values (geom_point).

# Does Reaction Time on the 2D Mental Rotation Task after 2 years of study predict Interpreting Grades at the end of 1st year?
mr2d_rt_grade_terp_wide %>%
  ggplot(aes(x = `mr2d_rt_2 years degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Reaction Time on the 2D Mental Rotation Task after 2 years of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning in qt((1 - level)/2, df): NaNs produced
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning in max(ids, na.rm = TRUE): no non-missing arguments to max; returning
## -Inf

# Does Reaction Time on the 2D Mental Rotation Task pre-degree predict Interpreting Grades at the end of 2nd year?
mr2d_rt_grade_terp_wide %>%
  ggplot(aes(x = `mr2d_rt_pre-degree`, y = `grade_terp_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Reaction Time on the 2D Mental Rotation Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Reaction Time on the 2D Mental Rotation Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
mr2d_rt_grade_terp_wide %>%
  ggplot(aes(x = `mr2d_rt_1 year degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Reaction Time on the 2D Mental Rotation Task after 1 year of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).

## Warning: Removed 23 rows containing missing values (geom_point).

# Does Reaction Time on the 2D Mental Rotation Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
mr2d_rt_grade_terp_wide %>%
  ggplot(aes(x = `mr2d_rt_2 years degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Reaction Time on the 2D Mental Rotation Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).

## Warning: Removed 23 rows containing missing values (geom_point).

Correlations
mr2d_rt_grade_terp_wide %>% 
  filter(`mr2d_rt_pre-degree`!= "NA") %>% 
  filter(`grade_terp_1 year degree` != "NA") %>% 
  summarize(rtCOR=cor(`mr2d_rt_pre-degree`, 
                       `grade_terp_1 year degree`))
## # A tibble: 1 x 1
##   rtCOR
##   <dbl>
## 1    NA
mr2d_rt_grade_terp_wide %>% 
  filter(`mr2d_rt_1 year degree`!= "NA") %>% 
  filter(`grade_terp_1 year degree` != "NA") %>% 
  summarize(rtCOR=cor(`mr2d_rt_1 year degree`, 
                       `grade_terp_1 year degree`))
## # A tibble: 1 x 1
##   rtCOR
##   <dbl>
## 1    NA
mr2d_rt_grade_terp_wide %>% 
  filter(`mr2d_rt_2 years degree`!= "NA") %>% 
  filter(`grade_terp_1 year degree` != "NA") %>%   summarize(rtCOR=cor(`mr2d_rt_2 years degree`, 
                       `grade_terp_1 year degree`))
## # A tibble: 1 x 1
##   rtCOR
##   <dbl>
## 1    -1
mr2d_rt_grade_terp_wide %>% 
  filter(`mr2d_rt_pre-degree`!= "NA") %>% 
  filter(`grade_terp_2 years degree` != "NA") %>% 
  summarize(rtCOR=cor(`mr2d_rt_pre-degree`, 
                       `grade_terp_2 years degree`))
## # A tibble: 1 x 1
##   rtCOR
##   <dbl>
## 1 0.239
mr2d_rt_grade_terp_wide %>% 
  filter(`mr2d_rt_1 year degree`!= "NA") %>% 
  filter(`grade_terp_2 years degree` != "NA") %>% 
  summarize(rtCOR=cor(`mr2d_rt_1 year degree`, 
                       `grade_terp_2 years degree`))
## # A tibble: 1 x 1
##   rtCOR
##   <dbl>
## 1 0.107
mr2d_rt_grade_terp_wide %>% 
  filter(`mr2d_rt_2 years degree`!= "NA") %>% 
  filter(`grade_terp_2 years degree` != "NA") %>%   summarize(rtCOR=cor(`mr2d_rt_2 years degree`, 
                       `grade_terp_2 years degree`))
## # A tibble: 1 x 1
##    rtCOR
##    <dbl>
## 1 -0.139

3D Mental Rotation vs Interpreting Grades

Accuracy
# Create wider pivot table
mr3d_acc_grade_terp_wide <- apt %>% 
  select(session, group, ppt, mr3d_acc, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(mr3d_acc, grade_terp))

# Does Accuracy on the 3D Mental Rotation Task pre-degree predict Interpreting Grades at the end of 1st year?
mr3d_acc_grade_terp_wide %>%
  ggplot(aes(x = `mr3d_acc_pre-degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the 3D Mental Rotation Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = "Accuracy on the 3D Mental Rotation Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Does Accuracy on the 3D Mental Rotation Task after 1 year of study predict Interpreting Grades at the end of 1st year?
# mr3d_acc_grade_terp_wide %>%
#  ggplot(aes(x = `mr3d_acc_1 year degree`, y = `grade_terp_1 year degree`)) +
#  geom_point() +
#  geom_smooth(method= "lm") +
#  theme_minimal()  # removing bc only 2 datapoints for 3DMR @ timepoint 2

# Does Accuracy on the 3D Mental Rotation Task after 2 years of study predict Interpreting Grades at the end of 1st year?
mr3d_acc_grade_terp_wide %>%
  ggplot(aes(x = `mr3d_acc_2 years degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title= "Does Accuracy on the 3D Mental Rotation Task after 2 years of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = "Accuracy on the 3D Mental Rotation Task after 2 years")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 30 rows containing non-finite values (stat_smooth).
## Warning: Removed 30 rows containing missing values (geom_point).

# Does Accuracy on the 3D Mental Rotation Task pre-degree predict Interpreting Grades at the end of 2nd year?
mr3d_acc_grade_terp_wide %>%
  ggplot(aes(x = `mr3d_acc_pre-degree`, y = `grade_terp_2 years degree`)) +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  geom_point() +
  theme_minimal() +
  labs(title= "Does Accuracy on the 3D Mental Rotation Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy on the 3D Mental Rotation Task pre-degree") 
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 17 rows containing non-finite values (stat_smooth).
## Warning: Removed 17 rows containing missing values (geom_point).

# Does Accuracy on the 3D Mental Rotation Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
# mr3d_acc_grade_terp_wide %>%
#  ggplot(aes(x = `mr3d_acc_1 year degree`, y = `grade_terp_2 years degree`)) +
#  geom_point() +
#  geom_smooth(method= "lm") +
#  theme_minimal()  # removing bc only 2 datapoints for 3DMR @ timepoint 2

# Does Accuracy on the 3D Mental Rotation Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
mr3d_acc_grade_terp_wide %>%
  ggplot(aes(x = `mr3d_acc_2 years degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title= "Does Accuracy on the 3D Mental Rotation Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy on the 3D Mental Rotation Task after 2 years") 
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

###### Correlations

mr3d_acc_grade_terp_wide %>% 
  filter(`mr3d_acc_pre-degree`!= "NA") %>% 
  filter(`grade_terp_1 year degree` != "NA") %>% 
  summarize(AccCOR=cor(`mr3d_acc_pre-degree`, 
                       `grade_terp_1 year degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 -0.127
mr3d_acc_grade_terp_wide %>% 
  filter(`mr3d_acc_2 years degree`!= "NA") %>% 
  filter(`grade_terp_1 year degree` != "NA") %>%   summarize(AccCOR=cor(`mr3d_acc_2 years degree`, 
                       `grade_terp_1 year degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.901
mr3d_acc_grade_terp_wide %>% 
  filter(`mr3d_acc_pre-degree`!= "NA") %>% 
  filter(`grade_terp_2 years degree` != "NA") %>% 
  summarize(AccCOR=cor(`mr3d_acc_pre-degree`, 
                       `grade_terp_2 years degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.221
mr3d_acc_grade_terp_wide %>% 
  filter(`mr3d_acc_2 years degree`!= "NA") %>% 
  filter(`grade_terp_2 years degree` != "NA") %>%   summarize(AccCOR=cor(`mr3d_acc_2 years degree`, 
                       `grade_terp_2 years degree`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.552
RT
# Create wider pivot table
mr3d_rt_grade_terp_wide <- apt %>% 
  select(session, group, ppt, mr3d_rt, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(mr3d_rt, grade_terp))

# Does Reaction Time on the 3D Mental Rotation Task pre-degree predict Interpreting Grades at the end of 1st year?
mr3d_rt_grade_terp_wide %>%
  ggplot(aes(x = `mr3d_rt_pre-degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal()+
  labs(title= "Does Reaction Time on the 3D Mental Rotation Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Reaction Time on the 3D Mental Rotation Task pre-degree") 
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Does Reaction Time on the 3D Mental Rotation Task after 1 year of study predict Interpreting Grades at the end of 1st year?
# mr3d_rt_grade_terp_wide %>%
#  ggplot(aes(x = `mr3d_rt_1 year degree`, y = `grade_terp_1 year degree`)) +
#  geom_point() +
#  geom_smooth(method= "lm") +
#  theme_minimal()  # removing bc only 2 datapoints for 3DMR @ timepoint 2

# Does Reaction Time on the 3D Mental Rotation Task after 2 years of study predict Interpreting Grades at the end of 1st year?
mr3d_rt_grade_terp_wide %>%
  ggplot(aes(x = `mr3d_rt_2 years degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal()+
  labs(title= "Does Reaction Time on the 3D Mental Rotation Task after 2 years of study\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = "Reaction Time on the 3D Mental Rotation Task after 2 year of study") 
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 30 rows containing non-finite values (stat_smooth).
## Warning: Removed 30 rows containing missing values (geom_point).

# Does Reaction Time on the 3D Mental Rotation Task pre-degree predict Interpreting Grades at the end of 2nd year?
mr3d_rt_grade_terp_wide %>%
  ggplot(aes(x = `mr3d_rt_pre-degree`, y = `grade_terp_2 years degree`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal()+
  labs(title= "Does Reaction Time on the 3D Mental Rotation Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Reaction Time on the 3D Mental Rotation Task pre-degree") 
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 17 rows containing non-finite values (stat_smooth).
## Warning: Removed 17 rows containing missing values (geom_point).

# Does Reaction Time on the 3D Mental Rotation Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
# mr3d_rt_grade_terp_wide %>%
#  ggplot(aes(x = `mr3d_rt_1 year degree`, y = `grade_terp_2 years degree`)) +
#  geom_point() +
#  geom_smooth(method= "lm") +
#  theme_minimal()   # removing bc only 2 datapoints for 3DMR @ timepoint 2

# Does Reaction Time on the 3D Mental Rotation Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
mr3d_rt_grade_terp_wide %>%
  ggplot(aes(x = `mr3d_rt_2 years degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title= "Does Reaction Time on the 3D Mental Rotation Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Reaction Time on the 3D Mental Rotation Task after 2 years of study") 
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

Correlations
mr3d_rt_grade_terp_wide %>% 
  filter(`mr3d_rt_pre-degree`!= "NA") %>% 
  filter(`grade_terp_1 year degree` != "NA") %>% 
  summarize(rtCOR=cor(`mr3d_rt_pre-degree`, 
                       `grade_terp_1 year degree`))
## # A tibble: 1 x 1
##   rtCOR
##   <dbl>
## 1 0.189
mr3d_rt_grade_terp_wide %>% 
  filter(`mr3d_rt_2 years degree`!= "NA") %>% 
  filter(`grade_terp_1 year degree` != "NA") %>%   summarize(rtCOR=cor(`mr3d_rt_2 years degree`, 
                       `grade_terp_1 year degree`))
## # A tibble: 1 x 1
##    rtCOR
##    <dbl>
## 1 -0.998
mr3d_rt_grade_terp_wide %>% 
  filter(`mr3d_rt_pre-degree`!= "NA") %>% 
  filter(`grade_terp_2 years degree` != "NA") %>% 
  summarize(rtCOR=cor(`mr3d_rt_pre-degree`, 
                       `grade_terp_2 years degree`))
## # A tibble: 1 x 1
##    rtCOR
##    <dbl>
## 1 -0.487
mr3d_rt_grade_terp_wide %>% 
  filter(`mr3d_rt_2 years degree`!= "NA") %>% 
  filter(`grade_terp_2 years degree` != "NA") %>%   summarize(rtCOR=cor(`mr3d_rt_2 years degree`, 
                       `grade_terp_2 years degree`))
## # A tibble: 1 x 1
##    rtCOR
##    <dbl>
## 1 -0.184

Barratt Impulsiveness Scale vs Interpreting Grades

Total Impulsiveness
# Create wider pivot table
bis_tot_grade_terp_wide <- apt %>% 
  select(session, group, ppt, bis_tot, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(bis_tot, grade_terp))

# Does Total Impulsiveness on the Barratt Impulsiveness Scale after 2 years of study predict Interpreting Grades at the end of 1st year?
bis_tot_grade_terp_wide %>%
  filter(`bis_tot_2 years degree` != "na") %>% 
  filter(`grade_terp_1 year degree` != "na") %>% 
  ggplot(aes(x = `bis_tot_2 years degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title= "Does Total Impulsiveness on the Barratt Impulsiveness Scale after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'

# Does Total Impulsiveness on the Barratt Impulsiveness Scale after 2 years of study predict Interpreting Grades at the end of 2nd year?
bis_tot_grade_terp_wide %>%
  filter(`bis_tot_2 years degree` != "na") %>% 
  filter(`grade_terp_2 years degree` != "na") %>% 
  ggplot(aes(x = `bis_tot_2 years degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title= "Does Total Impulsiveness on the Barratt Impulsiveness Scale after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'

Not sure why geom_smooth() line does not appear in knitted output (works in .Rmd file)

Attentional Impulsiveness
# Create wider pivot table
bis_att_grade_terp_wide <- apt %>% 
  select(session, group, ppt, bis_att, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(bis_att, grade_terp))

# Does Attentional Impulsiveness after 2 years predict Interpreting Grades at the end of 1st year?
bis_att_grade_terp_wide %>%
  filter(`bis_att_2 years degree` != "na") %>% 
  ggplot(aes(x = `bis_att_2 years degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title= "Does Attentional Impulsiveness on the Barratt Impulsiveness Scale after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 10 rows containing non-finite values (stat_smooth).
## Warning: Removed 10 rows containing missing values (geom_point).

# Does Attentional Impulsiveness after 2 years predict Interpreting Grades at the end of 2nd year?
bis_att_grade_terp_wide %>%
  filter(`bis_att_2 years degree` != "na") %>% 
  ggplot(aes(x = `bis_att_2 years degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title= "Does Attentional Impulsiveness on the Barratt Impulsiveness Scale after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 1 rows containing non-finite values (stat_smooth).
## Warning: Removed 1 rows containing missing values (geom_point).

Motor Impulsiveness
# Create wider pivot table
bis_nplan_grade_terp_wide <- apt %>% 
  select(session, group, ppt, bis_nplan, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(bis_nplan, grade_terp))

# Does Motor Impulsiveness on the Barratt Impulsiveness Scale after 2 years predict Interpreting Grades at the end of 1st year?
bis_nplan_grade_terp_wide %>%
  filter(`bis_nplan_2 years degree` != "na") %>% 
  ggplot(aes(x = `bis_nplan_2 years degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title= "Does Motor Impulsiveness on the Barratt Impulsiveness Scale after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 10 rows containing non-finite values (stat_smooth).
## Warning: Removed 10 rows containing missing values (geom_point).

# Does Motor Impulsiveness on the Barratt Impulsiveness Scale after 2 years predict Interpreting Grades at the end of 2nd year?
bis_nplan_grade_terp_wide %>%
  filter(`bis_nplan_2 years degree` != "na") %>% 
  ggplot(aes(x = `bis_nplan_2 years degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title= "Does Motor Impulsiveness on the Barratt Impulsiveness Scale after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 1 rows containing non-finite values (stat_smooth).
## Warning: Removed 1 rows containing missing values (geom_point).

Non-Planning Impulsiveness
# Create wider pivot table
bis_mot_grade_terp_wide <- apt %>% 
  select(session, group, ppt, bis_mot, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(bis_mot, grade_terp))

# Does Non-PLanning Impulsiveness on the Barratt Impulsiveness Scale after 2 years predict Interpreting Grades at the end of 1st year?
bis_mot_grade_terp_wide %>%
  filter(`bis_mot_2 years degree` != "NA") %>% 
  ggplot(aes(x = `bis_mot_2 years degree`, y = `grade_terp_1 year degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title= "Does Non-Planning Impulsiveness on the Barratt Impulsiveness Scale after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 10 rows containing non-finite values (stat_smooth).
## Warning: Removed 10 rows containing missing values (geom_point).

# Does Non-PLanning Impulsiveness on the Barratt Impulsiveness Scale after 2 years predict Interpreting Grades at the end of 2nd year?
bis_mot_grade_terp_wide %>%
  filter(`bis_mot_2 years degree` != "na") %>% 
  ggplot(aes(x = `bis_mot_2 years degree`, y = `grade_terp_2 years degree`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title= "Does Non-Planning Impulsiveness on the Barratt Impulsiveness Scale after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 1 rows containing non-finite values (stat_smooth).
## Warning: Removed 1 rows containing missing values (geom_point).

######################################################################### #########################################################################

Factor Analysis

reduce tibble to just independent variables:

# apt <- select(apt, -session, - group, -ppt, -copy_score, -srt_score, -town_map, -bsl_grade)

filter out rows with incomplete data

#apt_reduced <- filter(apt, corsi_corr != "na")
#apt_reduced <- filter(apt_reduced, nback_spat != "na")
#apt_reduced <- filter(apt_reduced, kirk_ceil != "na")

reduce to just four tasks that were done at all 3 sessions

#apt_reduced <- select(apt_reduced, nback_lett:kbit_acc)

FA using psych package

# fapsych <- fa(apt_reduced, nfactors=3, rotate="oblimin", scores="regression", residuals=FALSE, fm="minres")

run FA using factanal package

# FA <- factanal(apt_reduced, factors=2, rotation="varimax", scores="regression")